@webiny/validation 5.44.1-beta.1 → 5.45.0-beta.0
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/README.md +7 -405
- package/index.d.ts +4 -4
- package/index.js +50 -68
- package/index.js.map +1 -1
- package/package.json +9 -12
- package/types.d.ts +1 -1
- package/types.js +1 -5
- package/types.js.map +1 -1
- package/validation.d.ts +2 -2
- package/validation.js +13 -20
- package/validation.js.map +1 -1
- package/validationError.js +1 -7
- package/validationError.js.map +1 -1
- package/validators/creditCard.js +5 -12
- package/validators/creditCard.js.map +1 -1
- package/validators/dateGte.js +3 -10
- package/validators/dateGte.js.map +1 -1
- package/validators/dateLte.js +3 -10
- package/validators/dateLte.js.map +1 -1
- package/validators/email.js +3 -12
- package/validators/email.js.map +1 -1
- package/validators/eq.js +4 -11
- package/validators/eq.js.map +1 -1
- package/validators/gt.js +3 -10
- package/validators/gt.js.map +1 -1
- package/validators/gte.js +3 -10
- package/validators/gte.js.map +1 -1
- package/validators/in.js +3 -10
- package/validators/in.js.map +1 -1
- package/validators/integer.js +5 -13
- package/validators/integer.js.map +1 -1
- package/validators/json.js +4 -12
- package/validators/json.js.map +1 -1
- package/validators/lt.js +3 -11
- package/validators/lt.js.map +1 -1
- package/validators/lte.js +3 -11
- package/validators/lte.js.map +1 -1
- package/validators/maxLength.js +12 -20
- package/validators/maxLength.js.map +1 -1
- package/validators/minLength.js +12 -20
- package/validators/minLength.js.map +1 -1
- package/validators/number.js +7 -14
- package/validators/number.js.map +1 -1
- package/validators/numeric.js +6 -13
- package/validators/numeric.js.map +1 -1
- package/validators/password.js +3 -11
- package/validators/password.js.map +1 -1
- package/validators/phone.js +3 -11
- package/validators/phone.js.map +1 -1
- package/validators/required.js +3 -11
- package/validators/required.js.map +1 -1
- package/validators/slug.js +3 -11
- package/validators/slug.js.map +1 -1
- package/validators/time/index.js +9 -17
- package/validators/time/index.js.map +1 -1
- package/validators/timeGte.js +5 -12
- package/validators/timeGte.js.map +1 -1
- package/validators/timeLte.js +5 -12
- package/validators/timeLte.js.map +1 -1
- package/validators/url.js +7 -23
- package/validators/url.js.map +1 -1
package/validation.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import ValidationError from "./validationError";
|
|
2
|
-
import { ParsedValidators, ValidateOptions, Validator } from "./types";
|
|
1
|
+
import ValidationError from "./validationError.js";
|
|
2
|
+
import type { ParsedValidators, ValidateOptions, Validator } from "./types.js";
|
|
3
3
|
/**
|
|
4
4
|
* Main class of Validation library.
|
|
5
5
|
* Exported as a singleton instance, it offers methods for sync/async data validation and overwriting or adding new validators.
|
package/validation.js
CHANGED
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var _isString = _interopRequireDefault(require("lodash/isString"));
|
|
9
|
-
var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
|
|
10
|
-
var _trim = _interopRequireDefault(require("lodash/trim"));
|
|
11
|
-
var _validationError = _interopRequireDefault(require("./validationError"));
|
|
1
|
+
import isString from "lodash/isString.js";
|
|
2
|
+
import isEmpty from "lodash/isEmpty.js";
|
|
3
|
+
import trim from "lodash/trim.js";
|
|
4
|
+
import ValidationError from "./validationError.js";
|
|
12
5
|
const entries = validators => {
|
|
13
6
|
return Object.entries(validators);
|
|
14
7
|
};
|
|
@@ -58,7 +51,7 @@ class Validation {
|
|
|
58
51
|
*/
|
|
59
52
|
getValidator(name) {
|
|
60
53
|
if (!this.__validators[name]) {
|
|
61
|
-
throw new
|
|
54
|
+
throw new ValidationError("Validator `" + name + "` does not exist!", name);
|
|
62
55
|
}
|
|
63
56
|
return this.__validators[name];
|
|
64
57
|
}
|
|
@@ -71,10 +64,10 @@ class Validation {
|
|
|
71
64
|
* @returns {Promise<boolean | ValidationError>}
|
|
72
65
|
*/
|
|
73
66
|
async validate(value, validators, options = {}) {
|
|
74
|
-
if ((
|
|
67
|
+
if (isString(validators) && isEmpty(validators)) {
|
|
75
68
|
return true;
|
|
76
69
|
}
|
|
77
|
-
if (!(
|
|
70
|
+
if (!isString(validators)) {
|
|
78
71
|
throw new Error(invalidRules);
|
|
79
72
|
}
|
|
80
73
|
const parsedValidateProperty = this.__parseValidateProperty(validators);
|
|
@@ -83,7 +76,7 @@ class Validation {
|
|
|
83
76
|
try {
|
|
84
77
|
await validator(value, params);
|
|
85
78
|
} catch (e) {
|
|
86
|
-
const validationError = new
|
|
79
|
+
const validationError = new ValidationError(e.message, name, value);
|
|
87
80
|
if (options.throw === false) {
|
|
88
81
|
return validationError;
|
|
89
82
|
}
|
|
@@ -101,10 +94,10 @@ class Validation {
|
|
|
101
94
|
* @returns {Promise<boolean | ValidationError>}
|
|
102
95
|
*/
|
|
103
96
|
validateSync(value, validators, options = {}) {
|
|
104
|
-
if ((
|
|
97
|
+
if (isString(validators) && isEmpty(validators)) {
|
|
105
98
|
return true;
|
|
106
99
|
}
|
|
107
|
-
if (!(
|
|
100
|
+
if (!isString(validators)) {
|
|
108
101
|
throw new Error(invalidRules);
|
|
109
102
|
}
|
|
110
103
|
const parsedValidateProperty = this.__parseValidateProperty(validators);
|
|
@@ -113,7 +106,7 @@ class Validation {
|
|
|
113
106
|
try {
|
|
114
107
|
validator(value, params);
|
|
115
108
|
} catch (e) {
|
|
116
|
-
const validationError = new
|
|
109
|
+
const validationError = new ValidationError(e.message, name, value);
|
|
117
110
|
if (options.throw === false) {
|
|
118
111
|
return validationError;
|
|
119
112
|
}
|
|
@@ -147,7 +140,7 @@ class Validation {
|
|
|
147
140
|
const validate = validators.split(",");
|
|
148
141
|
const parsedValidators = {};
|
|
149
142
|
validate.forEach(v => {
|
|
150
|
-
const params = (
|
|
143
|
+
const params = trim(v).split(":");
|
|
151
144
|
const vName = params.shift();
|
|
152
145
|
if (!vName) {
|
|
153
146
|
return;
|
|
@@ -157,6 +150,6 @@ class Validation {
|
|
|
157
150
|
return parsedValidators;
|
|
158
151
|
}
|
|
159
152
|
}
|
|
160
|
-
|
|
153
|
+
export default Validation;
|
|
161
154
|
|
|
162
155
|
//# sourceMappingURL=validation.js.map
|
package/validation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_isString","_interopRequireDefault","require","_isEmpty","_trim","_validationError","entries","validators","Object","invalidRules","createdValidators","async","sync","Validation","constructor","__validators","setValidator","name","callable","validatorName","getValidator","ValidationError","validate","value","options","isString","isEmpty","Error","parsedValidateProperty","__parseValidateProperty","params","validator","e","validationError","message","throw","validateSync","create","createSync","split","parsedValidators","forEach","v","trim","vName","shift","_default","exports","default"],"sources":["validation.ts"],"sourcesContent":["import isString from \"lodash/isString\";\nimport isEmpty from \"lodash/isEmpty\";\nimport trim from \"lodash/trim\";\nimport ValidationError from \"./validationError\";\nimport { ParsedValidators, ValidateOptions, Validator } from \"./types\";\n\nconst entries = (validators: ParsedValidators): Array<[string, Array<string>]> => {\n return Object.entries(validators);\n};\n\nconst invalidRules = \"Validators must be specified as a string (eg. required,minLength:10,email).\";\n\ninterface CreatedValidators {\n async: Record<string, Validator>;\n sync: Record<string, Validator>;\n}\nconst createdValidators: CreatedValidators = {\n async: {},\n sync: {}\n};\n\n/**\n * Main class of Validation library.\n * Exported as a singleton instance, it offers methods for sync/async data validation and overwriting or adding new validators.\n *\n * @class Validation\n * @example\n * import { validation } from '@webiny/validation';\n *\n * // `validation` is a preconfigured instance of Validation class.\n * // From here you can either add new validators or use it as-is.\n */\nclass Validation {\n /**\n * Contains a list of all set validators.\n * @private\n */\n __validators: {\n [key: string]: Validator;\n };\n\n constructor() {\n this.__validators = {};\n }\n\n /**\n * Add new validator.\n * @param name Validator name.\n * @param callable Validator function which throws a ValidationError if validation fails.\n * @returns {Validation}\n */\n setValidator(name: string, callable: Validator): this {\n this.__validators[name] = callable;\n this.__validators[name].validatorName = name;\n return this;\n }\n\n /**\n * Get validator function by name.\n * @param name Validator name.\n * @returns {Validator} A validator function.\n */\n getValidator(name: string): Validator {\n if (!this.__validators[name]) {\n throw new ValidationError(\"Validator `\" + name + \"` does not exist!\", name);\n }\n return this.__validators[name];\n }\n\n /**\n * Asynchronously validates value.\n * @param value Value to validate.\n * @param validators A list of comma-separated validators (eg. required,number,gt:20).\n * @param [options] Validation options.\n * @returns {Promise<boolean | ValidationError>}\n */\n async validate(\n value: any,\n validators: string,\n options: ValidateOptions = {}\n ): Promise<boolean | ValidationError> {\n if (isString(validators) && isEmpty(validators)) {\n return true;\n }\n\n if (!isString(validators)) {\n throw new Error(invalidRules);\n }\n\n const parsedValidateProperty = this.__parseValidateProperty(validators);\n\n for (const [name, params] of entries(parsedValidateProperty)) {\n const validator = this.getValidator(name);\n try {\n await validator(value, params);\n } catch (e) {\n const validationError = new ValidationError(e.message, name, value);\n if (options.throw === false) {\n return validationError;\n }\n throw validationError;\n }\n }\n return true;\n }\n\n /**\n * Synchronously validates value.\n * @param value Value to validate.\n * @param validators A list of comma-separated validators (eg. required,number,gt:20).\n * @param [options] Validation options.\n * @returns {Promise<boolean | ValidationError>}\n */\n validateSync(\n value: any,\n validators: string,\n options: ValidateOptions = {}\n ): boolean | ValidationError {\n if (isString(validators) && isEmpty(validators)) {\n return true;\n }\n\n if (!isString(validators)) {\n throw new Error(invalidRules);\n }\n\n const parsedValidateProperty = this.__parseValidateProperty(validators);\n\n for (const [name, params] of entries(parsedValidateProperty)) {\n const validator = this.getValidator(name);\n try {\n validator(value, params);\n } catch (e) {\n const validationError = new ValidationError(e.message, name, value);\n if (options.throw === false) {\n return validationError;\n }\n throw validationError;\n }\n }\n return true;\n }\n\n create(validators: string) {\n if (createdValidators.async[validators]) {\n return createdValidators.async[validators];\n }\n\n createdValidators.async[validators] = value => this.validate(value, validators);\n return createdValidators.async[validators];\n }\n\n createSync(validators: string) {\n if (createdValidators.sync[validators]) {\n return createdValidators.sync[validators];\n }\n\n createdValidators.sync[validators] = value => this.validateSync(value, validators);\n return createdValidators.sync[validators];\n }\n\n /**\n * Parses a string of validators with parameters.\n * @param validators A list of comma-separated validators (eg. required,number,gt:20).\n * @returns {ParsedValidators}\n * @private\n */\n __parseValidateProperty(validators: string): ParsedValidators {\n const validate: Array<string> = validators.split(\",\");\n\n const parsedValidators: ParsedValidators = {};\n validate.forEach((v: string) => {\n const params = trim(v).split(\":\");\n const vName = params.shift();\n if (!vName) {\n return;\n }\n parsedValidators[vName] = params;\n });\n return parsedValidators;\n }\n}\n\nexport default Validation;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["isString","isEmpty","trim","ValidationError","entries","validators","Object","invalidRules","createdValidators","async","sync","Validation","constructor","__validators","setValidator","name","callable","validatorName","getValidator","validate","value","options","Error","parsedValidateProperty","__parseValidateProperty","params","validator","e","validationError","message","throw","validateSync","create","createSync","split","parsedValidators","forEach","v","vName","shift"],"sources":["validation.ts"],"sourcesContent":["import isString from \"lodash/isString.js\";\nimport isEmpty from \"lodash/isEmpty.js\";\nimport trim from \"lodash/trim.js\";\nimport ValidationError from \"./validationError.js\";\nimport type { ParsedValidators, ValidateOptions, Validator } from \"./types.js\";\n\nconst entries = (validators: ParsedValidators): Array<[string, Array<string>]> => {\n return Object.entries(validators);\n};\n\nconst invalidRules = \"Validators must be specified as a string (eg. required,minLength:10,email).\";\n\ninterface CreatedValidators {\n async: Record<string, Validator>;\n sync: Record<string, Validator>;\n}\nconst createdValidators: CreatedValidators = {\n async: {},\n sync: {}\n};\n\n/**\n * Main class of Validation library.\n * Exported as a singleton instance, it offers methods for sync/async data validation and overwriting or adding new validators.\n *\n * @class Validation\n * @example\n * import { validation } from '@webiny/validation';\n *\n * // `validation` is a preconfigured instance of Validation class.\n * // From here you can either add new validators or use it as-is.\n */\nclass Validation {\n /**\n * Contains a list of all set validators.\n * @private\n */\n __validators: {\n [key: string]: Validator;\n };\n\n constructor() {\n this.__validators = {};\n }\n\n /**\n * Add new validator.\n * @param name Validator name.\n * @param callable Validator function which throws a ValidationError if validation fails.\n * @returns {Validation}\n */\n setValidator(name: string, callable: Validator): this {\n this.__validators[name] = callable;\n this.__validators[name].validatorName = name;\n return this;\n }\n\n /**\n * Get validator function by name.\n * @param name Validator name.\n * @returns {Validator} A validator function.\n */\n getValidator(name: string): Validator {\n if (!this.__validators[name]) {\n throw new ValidationError(\"Validator `\" + name + \"` does not exist!\", name);\n }\n return this.__validators[name];\n }\n\n /**\n * Asynchronously validates value.\n * @param value Value to validate.\n * @param validators A list of comma-separated validators (eg. required,number,gt:20).\n * @param [options] Validation options.\n * @returns {Promise<boolean | ValidationError>}\n */\n async validate(\n value: any,\n validators: string,\n options: ValidateOptions = {}\n ): Promise<boolean | ValidationError> {\n if (isString(validators) && isEmpty(validators)) {\n return true;\n }\n\n if (!isString(validators)) {\n throw new Error(invalidRules);\n }\n\n const parsedValidateProperty = this.__parseValidateProperty(validators);\n\n for (const [name, params] of entries(parsedValidateProperty)) {\n const validator = this.getValidator(name);\n try {\n await validator(value, params);\n } catch (e) {\n const validationError = new ValidationError(e.message, name, value);\n if (options.throw === false) {\n return validationError;\n }\n throw validationError;\n }\n }\n return true;\n }\n\n /**\n * Synchronously validates value.\n * @param value Value to validate.\n * @param validators A list of comma-separated validators (eg. required,number,gt:20).\n * @param [options] Validation options.\n * @returns {Promise<boolean | ValidationError>}\n */\n validateSync(\n value: any,\n validators: string,\n options: ValidateOptions = {}\n ): boolean | ValidationError {\n if (isString(validators) && isEmpty(validators)) {\n return true;\n }\n\n if (!isString(validators)) {\n throw new Error(invalidRules);\n }\n\n const parsedValidateProperty = this.__parseValidateProperty(validators);\n\n for (const [name, params] of entries(parsedValidateProperty)) {\n const validator = this.getValidator(name);\n try {\n validator(value, params);\n } catch (e) {\n const validationError = new ValidationError(e.message, name, value);\n if (options.throw === false) {\n return validationError;\n }\n throw validationError;\n }\n }\n return true;\n }\n\n create(validators: string) {\n if (createdValidators.async[validators]) {\n return createdValidators.async[validators];\n }\n\n createdValidators.async[validators] = value => this.validate(value, validators);\n return createdValidators.async[validators];\n }\n\n createSync(validators: string) {\n if (createdValidators.sync[validators]) {\n return createdValidators.sync[validators];\n }\n\n createdValidators.sync[validators] = value => this.validateSync(value, validators);\n return createdValidators.sync[validators];\n }\n\n /**\n * Parses a string of validators with parameters.\n * @param validators A list of comma-separated validators (eg. required,number,gt:20).\n * @returns {ParsedValidators}\n * @private\n */\n __parseValidateProperty(validators: string): ParsedValidators {\n const validate: Array<string> = validators.split(\",\");\n\n const parsedValidators: ParsedValidators = {};\n validate.forEach((v: string) => {\n const params = trim(v).split(\":\");\n const vName = params.shift();\n if (!vName) {\n return;\n }\n parsedValidators[vName] = params;\n });\n return parsedValidators;\n }\n}\n\nexport default Validation;\n"],"mappings":"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","ignoreList":[]}
|
package/validationError.js
CHANGED
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
1
|
/**
|
|
8
2
|
* This class is used by validators to throw an error when value validation fails.
|
|
9
3
|
*/
|
|
@@ -15,6 +9,6 @@ class ValidationError extends Error {
|
|
|
15
9
|
this.value = value;
|
|
16
10
|
}
|
|
17
11
|
}
|
|
18
|
-
|
|
12
|
+
export default ValidationError;
|
|
19
13
|
|
|
20
14
|
//# sourceMappingURL=validationError.js.map
|
package/validationError.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ValidationError","Error","constructor","message","validator","value"
|
|
1
|
+
{"version":3,"names":["ValidationError","Error","constructor","message","validator","value"],"sources":["validationError.ts"],"sourcesContent":["/**\n * This class is used by validators to throw an error when value validation fails.\n */\nclass ValidationError extends Error {\n public override readonly message: string;\n public readonly validator: string | null;\n public readonly value: any;\n\n constructor(message = \"\", validator: string | null = null, value: string | null = null) {\n super();\n this.message = message;\n this.validator = validator;\n this.value = value;\n }\n}\n\nexport default ValidationError;\n"],"mappings":"AAAA;AACA;AACA;AACA,MAAMA,eAAe,SAASC,KAAK,CAAC;EAKhCC,WAAWA,CAACC,OAAO,GAAG,EAAE,EAAEC,SAAwB,GAAG,IAAI,EAAEC,KAAoB,GAAG,IAAI,EAAE;IACpF,KAAK,CAAC,CAAC;IACP,IAAI,CAACF,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACC,KAAK,GAAGA,KAAK;EACtB;AACJ;AAEA,eAAeL,eAAe","ignoreList":[]}
|
package/validators/creditCard.js
CHANGED
|
@@ -1,11 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import ValidationError from "../validationError.js";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var _validationError = _interopRequireDefault(require("../validationError"));
|
|
9
3
|
/**
|
|
10
4
|
* @name creditCard
|
|
11
5
|
* @description Credit card validator. This validator will check if the given value is a credit card number.
|
|
@@ -19,16 +13,16 @@ var _validationError = _interopRequireDefault(require("../validationError"));
|
|
|
19
13
|
* // Invalid
|
|
20
14
|
* });
|
|
21
15
|
*/
|
|
22
|
-
|
|
16
|
+
export default value => {
|
|
23
17
|
if (!value) {
|
|
24
18
|
return;
|
|
25
19
|
}
|
|
26
20
|
value = value + "";
|
|
27
21
|
if (value.length < 12) {
|
|
28
|
-
throw new
|
|
22
|
+
throw new ValidationError("Credit card number too short.");
|
|
29
23
|
}
|
|
30
24
|
if (/[^0-9-\s]+/.test(value)) {
|
|
31
|
-
throw new
|
|
25
|
+
throw new ValidationError("Credit card number invalid.");
|
|
32
26
|
}
|
|
33
27
|
let nCheck = 0;
|
|
34
28
|
let nDigit = 0;
|
|
@@ -50,8 +44,7 @@ var _default = value => {
|
|
|
50
44
|
if (nCheck % 10 === 0) {
|
|
51
45
|
return;
|
|
52
46
|
}
|
|
53
|
-
throw new
|
|
47
|
+
throw new ValidationError("Credit card number invalid.");
|
|
54
48
|
};
|
|
55
|
-
exports.default = _default;
|
|
56
49
|
|
|
57
50
|
//# sourceMappingURL=creditCard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["ValidationError","value","length","test","nCheck","nDigit","bEven","replace","n","cDigit","charAt","parseInt"],"sources":["creditCard.ts"],"sourcesContent":["import ValidationError from \"~/validationError.js\";\n\n/**\n * @name creditCard\n * @description Credit card validator. This validator will check if the given value is a credit card number.\n * @param {any} value This is the value that will be validated.\n * @throws {ValidationError}\n * @example\n * import { validation } from '@webiny/validation';\n * validation.validate('notACreditCard', 'creditCard').then(() => {\n * // Valid\n * }).catch(e => {\n * // Invalid\n * });\n */\nexport default (value: any): void => {\n if (!value) {\n return;\n }\n value = value + \"\";\n\n if (value.length < 12) {\n throw new ValidationError(\"Credit card number too short.\");\n }\n\n if (/[^0-9-\\s]+/.test(value)) {\n throw new ValidationError(\"Credit card number invalid.\");\n }\n\n let nCheck = 0;\n let nDigit = 0;\n let bEven = false;\n\n value = value.replace(/ /g, \"\");\n value = value.replace(/\\D/g, \"\");\n\n for (let n = value.length - 1; n >= 0; n--) {\n const cDigit = value.charAt(n);\n nDigit = parseInt(cDigit);\n\n if (bEven) {\n nDigit *= 2;\n if (nDigit > 9) {\n nDigit -= 9;\n }\n }\n\n nCheck += nDigit;\n bEven = !bEven;\n }\n\n if (nCheck % 10 === 0) {\n return;\n }\n\n throw new ValidationError(\"Credit card number invalid.\");\n};\n"],"mappings":"AAAA,OAAOA,eAAe;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAgBC,KAAU,IAAW;EACjC,IAAI,CAACA,KAAK,EAAE;IACR;EACJ;EACAA,KAAK,GAAGA,KAAK,GAAG,EAAE;EAElB,IAAIA,KAAK,CAACC,MAAM,GAAG,EAAE,EAAE;IACnB,MAAM,IAAIF,eAAe,CAAC,+BAA+B,CAAC;EAC9D;EAEA,IAAI,YAAY,CAACG,IAAI,CAACF,KAAK,CAAC,EAAE;IAC1B,MAAM,IAAID,eAAe,CAAC,6BAA6B,CAAC;EAC5D;EAEA,IAAII,MAAM,GAAG,CAAC;EACd,IAAIC,MAAM,GAAG,CAAC;EACd,IAAIC,KAAK,GAAG,KAAK;EAEjBL,KAAK,GAAGA,KAAK,CAACM,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;EAC/BN,KAAK,GAAGA,KAAK,CAACM,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;EAEhC,KAAK,IAAIC,CAAC,GAAGP,KAAK,CAACC,MAAM,GAAG,CAAC,EAAEM,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;IACxC,MAAMC,MAAM,GAAGR,KAAK,CAACS,MAAM,CAACF,CAAC,CAAC;IAC9BH,MAAM,GAAGM,QAAQ,CAACF,MAAM,CAAC;IAEzB,IAAIH,KAAK,EAAE;MACPD,MAAM,IAAI,CAAC;MACX,IAAIA,MAAM,GAAG,CAAC,EAAE;QACZA,MAAM,IAAI,CAAC;MACf;IACJ;IAEAD,MAAM,IAAIC,MAAM;IAChBC,KAAK,GAAG,CAACA,KAAK;EAClB;EAEA,IAAIF,MAAM,GAAG,EAAE,KAAK,CAAC,EAAE;IACnB;EACJ;EAEA,MAAM,IAAIJ,eAAe,CAAC,6BAA6B,CAAC;AAC5D,CAAC","ignoreList":[]}
|
package/validators/dateGte.js
CHANGED
|
@@ -1,15 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
import ValidationError from "../validationError.js";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var _validationError = _interopRequireDefault(require("../validationError"));
|
|
9
3
|
/**
|
|
10
4
|
* Validates that given value is a greater or equal date to a gteValue
|
|
11
5
|
*/
|
|
12
|
-
|
|
6
|
+
export default (value, params) => {
|
|
13
7
|
if (!value || !params) {
|
|
14
8
|
return;
|
|
15
9
|
}
|
|
@@ -23,8 +17,7 @@ var _default = (value, params) => {
|
|
|
23
17
|
if (date >= gteDate) {
|
|
24
18
|
return;
|
|
25
19
|
}
|
|
26
|
-
throw new
|
|
20
|
+
throw new ValidationError(`Value needs to be greater than or equal to "${gteDate.toISOString()}".`);
|
|
27
21
|
};
|
|
28
|
-
exports.default = _default;
|
|
29
22
|
|
|
30
23
|
//# sourceMappingURL=dateGte.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["ValidationError","value","params","gteValue","join","date","Date","gteDate","toISOString"],"sources":["dateGte.ts"],"sourcesContent":["import ValidationError from \"~/validationError.js\";\n\n/**\n * Validates that given value is a greater or equal date to a gteValue\n */\nexport default (value: string, params?: string[]) => {\n if (!value || !params) {\n return;\n }\n // we need to join because validation params are being split by :\n const gteValue = params.join(\":\");\n if (!gteValue) {\n return;\n }\n\n const date = new Date(value);\n const gteDate = new Date(gteValue);\n\n if (date >= gteDate) {\n return;\n }\n throw new ValidationError(\n `Value needs to be greater than or equal to \"${gteDate.toISOString()}\".`\n );\n};\n"],"mappings":"AAAA,OAAOA,eAAe;;AAEtB;AACA;AACA;AACA,eAAe,CAACC,KAAa,EAAEC,MAAiB,KAAK;EACjD,IAAI,CAACD,KAAK,IAAI,CAACC,MAAM,EAAE;IACnB;EACJ;EACA;EACA,MAAMC,QAAQ,GAAGD,MAAM,CAACE,IAAI,CAAC,GAAG,CAAC;EACjC,IAAI,CAACD,QAAQ,EAAE;IACX;EACJ;EAEA,MAAME,IAAI,GAAG,IAAIC,IAAI,CAACL,KAAK,CAAC;EAC5B,MAAMM,OAAO,GAAG,IAAID,IAAI,CAACH,QAAQ,CAAC;EAElC,IAAIE,IAAI,IAAIE,OAAO,EAAE;IACjB;EACJ;EACA,MAAM,IAAIP,eAAe,CACrB,+CAA+CO,OAAO,CAACC,WAAW,CAAC,CAAC,IACxE,CAAC;AACL,CAAC","ignoreList":[]}
|
package/validators/dateLte.js
CHANGED
|
@@ -1,15 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
import ValidationError from "../validationError.js";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var _validationError = _interopRequireDefault(require("../validationError"));
|
|
9
3
|
/**
|
|
10
4
|
* Validates that given value is a lesser than or equal date to a lteValue
|
|
11
5
|
*/
|
|
12
|
-
|
|
6
|
+
export default (value, params) => {
|
|
13
7
|
if (!value || !params) {
|
|
14
8
|
return;
|
|
15
9
|
}
|
|
@@ -23,8 +17,7 @@ var _default = (value, params) => {
|
|
|
23
17
|
if (date <= lteDate) {
|
|
24
18
|
return;
|
|
25
19
|
}
|
|
26
|
-
throw new
|
|
20
|
+
throw new ValidationError(`Value needs to be lesser than or equal to "${lteDate.toISOString()}".`);
|
|
27
21
|
};
|
|
28
|
-
exports.default = _default;
|
|
29
22
|
|
|
30
23
|
//# sourceMappingURL=dateLte.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["ValidationError","value","params","lteValue","join","date","Date","lteDate","toISOString"],"sources":["dateLte.ts"],"sourcesContent":["import ValidationError from \"~/validationError.js\";\n\n/**\n * Validates that given value is a lesser than or equal date to a lteValue\n */\nexport default (value: string, params?: string[]) => {\n if (!value || !params) {\n return;\n }\n // we need to join because validation params are being split by :\n const lteValue = params.join(\":\");\n if (!lteValue) {\n return;\n }\n\n const date = new Date(value);\n const lteDate = new Date(lteValue);\n\n if (date <= lteDate) {\n return;\n }\n throw new ValidationError(\n `Value needs to be lesser than or equal to \"${lteDate.toISOString()}\".`\n );\n};\n"],"mappings":"AAAA,OAAOA,eAAe;;AAEtB;AACA;AACA;AACA,eAAe,CAACC,KAAa,EAAEC,MAAiB,KAAK;EACjD,IAAI,CAACD,KAAK,IAAI,CAACC,MAAM,EAAE;IACnB;EACJ;EACA;EACA,MAAMC,QAAQ,GAAGD,MAAM,CAACE,IAAI,CAAC,GAAG,CAAC;EACjC,IAAI,CAACD,QAAQ,EAAE;IACX;EACJ;EAEA,MAAME,IAAI,GAAG,IAAIC,IAAI,CAACL,KAAK,CAAC;EAC5B,MAAMM,OAAO,GAAG,IAAID,IAAI,CAACH,QAAQ,CAAC;EAElC,IAAIE,IAAI,IAAIE,OAAO,EAAE;IACjB;EACJ;EACA,MAAM,IAAIP,eAAe,CACrB,8CAA8CO,OAAO,CAACC,WAAW,CAAC,CAAC,IACvE,CAAC;AACL,CAAC","ignoreList":[]}
|
package/validators/email.js
CHANGED
|
@@ -1,11 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import ValidationError from "../validationError.js";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var _validationError = _interopRequireDefault(require("../validationError"));
|
|
9
3
|
/**
|
|
10
4
|
* @name email
|
|
11
5
|
* @description Email validator. This validator checks if the given value is a valid email address.
|
|
@@ -19,19 +13,16 @@ var _validationError = _interopRequireDefault(require("../validationError"));
|
|
|
19
13
|
* // Invalid
|
|
20
14
|
* });
|
|
21
15
|
*/
|
|
22
|
-
|
|
16
|
+
export default value => {
|
|
23
17
|
if (!value) {
|
|
24
18
|
return;
|
|
25
19
|
}
|
|
26
20
|
value = value + "";
|
|
27
|
-
|
|
28
|
-
// eslint-disable-next-line
|
|
29
21
|
const re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
|
30
22
|
if (!value || value.length && re.test(value)) {
|
|
31
23
|
return;
|
|
32
24
|
}
|
|
33
|
-
throw new
|
|
25
|
+
throw new ValidationError("Value must be a valid e-mail address.");
|
|
34
26
|
};
|
|
35
|
-
exports.default = _default;
|
|
36
27
|
|
|
37
28
|
//# sourceMappingURL=email.js.map
|
package/validators/email.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["ValidationError","value","re","length","test"],"sources":["email.ts"],"sourcesContent":["import ValidationError from \"~/validationError.js\";\n\n/**\n * @name email\n * @description Email validator. This validator checks if the given value is a valid email address.\n * @param {any} value This is the value that will be validated.\n * @throws {ValidationError}\n * @example\n * import { validation } from '@webiny/validation';\n * validation.validate('email@gmail.com', 'email').then(() => {\n * // Valid\n * }).catch(e => {\n * // Invalid\n * });\n */\nexport default (value: any): void => {\n if (!value) {\n return;\n }\n value = value + \"\";\n\n const re =\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n if (!value || (value.length && re.test(value))) {\n return;\n }\n throw new ValidationError(\"Value must be a valid e-mail address.\");\n};\n"],"mappings":"AAAA,OAAOA,eAAe;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAgBC,KAAU,IAAW;EACjC,IAAI,CAACA,KAAK,EAAE;IACR;EACJ;EACAA,KAAK,GAAGA,KAAK,GAAG,EAAE;EAElB,MAAMC,EAAE,GACJ,sJAAsJ;EAC1J,IAAI,CAACD,KAAK,IAAKA,KAAK,CAACE,MAAM,IAAID,EAAE,CAACE,IAAI,CAACH,KAAK,CAAE,EAAE;IAC5C;EACJ;EACA,MAAM,IAAID,eAAe,CAAC,uCAAuC,CAAC;AACtE,CAAC","ignoreList":[]}
|
package/validators/eq.js
CHANGED
|
@@ -1,11 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import ValidationError from "../validationError.js";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var _validationError = _interopRequireDefault(require("../validationError"));
|
|
9
3
|
/**
|
|
10
4
|
* @name eq
|
|
11
5
|
* @description Equality validator. This validator checks if the given values are equal.
|
|
@@ -20,19 +14,18 @@ var _validationError = _interopRequireDefault(require("../validationError"));
|
|
|
20
14
|
* // Invalid
|
|
21
15
|
* });
|
|
22
16
|
*/
|
|
23
|
-
|
|
17
|
+
export default (value, params) => {
|
|
24
18
|
if (!value || !params) {
|
|
25
19
|
return;
|
|
26
20
|
}
|
|
27
21
|
value = value + "";
|
|
28
22
|
|
|
29
23
|
// Intentionally put '==' instead of '===' because passed parameter for this validator is always sent inside a string (eg. "eq:test").
|
|
30
|
-
|
|
24
|
+
|
|
31
25
|
if (value == params[0]) {
|
|
32
26
|
return;
|
|
33
27
|
}
|
|
34
|
-
throw new
|
|
28
|
+
throw new ValidationError("Value must be equal to " + params[0] + ".");
|
|
35
29
|
};
|
|
36
|
-
exports.default = _default;
|
|
37
30
|
|
|
38
31
|
//# sourceMappingURL=eq.js.map
|
package/validators/eq.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["ValidationError","value","params"],"sources":["eq.ts"],"sourcesContent":["import ValidationError from \"~/validationError.js\";\n\n/**\n * @name eq\n * @description Equality validator. This validator checks if the given values are equal.\n * @param {any} value This is the value that will be validated.\n * @param {Array<string>} params This is the value to validate against. It is passed as a validator parameter: `eq:valueToCompareWith`\n * @throws {ValidationError}\n * @example\n * import { validation } from '@webiny/validation';\n * validation.validate('email@gmail.com', 'eq:another@gmail.com').then(() => {\n * // Valid\n * }).catch(e => {\n * // Invalid\n * });\n */\nexport default (value: any, params?: string[]) => {\n if (!value || !params) {\n return;\n }\n value = value + \"\";\n\n // Intentionally put '==' instead of '===' because passed parameter for this validator is always sent inside a string (eg. \"eq:test\").\n\n if (value == params[0]) {\n return;\n }\n throw new ValidationError(\"Value must be equal to \" + params[0] + \".\");\n};\n"],"mappings":"AAAA,OAAOA,eAAe;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,CAACC,KAAU,EAAEC,MAAiB,KAAK;EAC9C,IAAI,CAACD,KAAK,IAAI,CAACC,MAAM,EAAE;IACnB;EACJ;EACAD,KAAK,GAAGA,KAAK,GAAG,EAAE;;EAElB;;EAEA,IAAIA,KAAK,IAAIC,MAAM,CAAC,CAAC,CAAC,EAAE;IACpB;EACJ;EACA,MAAM,IAAIF,eAAe,CAAC,yBAAyB,GAAGE,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC1E,CAAC","ignoreList":[]}
|
package/validators/gt.js
CHANGED
|
@@ -1,11 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import ValidationError from "../validationError.js";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var _validationError = _interopRequireDefault(require("../validationError"));
|
|
9
3
|
/**
|
|
10
4
|
* @name gt
|
|
11
5
|
* @description "Greater than" validator. This validator checks if the given values is greater than the `min` value.
|
|
@@ -20,7 +14,7 @@ var _validationError = _interopRequireDefault(require("../validationError"));
|
|
|
20
14
|
* // Invalid
|
|
21
15
|
* });
|
|
22
16
|
*/
|
|
23
|
-
|
|
17
|
+
export default (value, params) => {
|
|
24
18
|
if (value === undefined || value === null || !params) {
|
|
25
19
|
return;
|
|
26
20
|
}
|
|
@@ -28,8 +22,7 @@ var _default = (value, params) => {
|
|
|
28
22
|
if (parseFloat(value) > parseFloat(params[0])) {
|
|
29
23
|
return;
|
|
30
24
|
}
|
|
31
|
-
throw new
|
|
25
|
+
throw new ValidationError("Value needs to be greater than " + params[0] + ".");
|
|
32
26
|
};
|
|
33
|
-
exports.default = _default;
|
|
34
27
|
|
|
35
28
|
//# sourceMappingURL=gt.js.map
|
package/validators/gt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["ValidationError","value","params","undefined","parseFloat"],"sources":["gt.ts"],"sourcesContent":["import ValidationError from \"~/validationError.js\";\n\n/**\n * @name gt\n * @description \"Greater than\" validator. This validator checks if the given values is greater than the `min` value.\n * @param {any} value This is the value that will be validated.\n * @param {Array<string>} params This is the value to validate against. It is passed as a validator parameter: `gt:valueToCompareAgainst`\n * @throws {ValidationError}\n * @example\n * import { validation } from '@webiny/validation';\n * validation.validate(10, 'gt:100').then(() => {\n * // Valid\n * }).catch(e => {\n * // Invalid\n * });\n */\nexport default (value: any, params?: string[]) => {\n if (value === undefined || value === null || !params) {\n return;\n }\n value = value + \"\";\n\n if (parseFloat(value) > parseFloat(params[0])) {\n return;\n }\n throw new ValidationError(\"Value needs to be greater than \" + params[0] + \".\");\n};\n"],"mappings":"AAAA,OAAOA,eAAe;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,CAACC,KAAU,EAAEC,MAAiB,KAAK;EAC9C,IAAID,KAAK,KAAKE,SAAS,IAAIF,KAAK,KAAK,IAAI,IAAI,CAACC,MAAM,EAAE;IAClD;EACJ;EACAD,KAAK,GAAGA,KAAK,GAAG,EAAE;EAElB,IAAIG,UAAU,CAACH,KAAK,CAAC,GAAGG,UAAU,CAACF,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;IAC3C;EACJ;EACA,MAAM,IAAIF,eAAe,CAAC,iCAAiC,GAAGE,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAClF,CAAC","ignoreList":[]}
|
package/validators/gte.js
CHANGED
|
@@ -1,11 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import ValidationError from "../validationError.js";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var _validationError = _interopRequireDefault(require("../validationError"));
|
|
9
3
|
/**
|
|
10
4
|
* @name gte
|
|
11
5
|
* @description "Greater than or equals" validator. This validator checks if the given values is greater than or equal to the `min` value.
|
|
@@ -20,7 +14,7 @@ var _validationError = _interopRequireDefault(require("../validationError"));
|
|
|
20
14
|
* // Invalid
|
|
21
15
|
* });
|
|
22
16
|
*/
|
|
23
|
-
|
|
17
|
+
export default (value, params) => {
|
|
24
18
|
if (value === undefined || value === null || !params) {
|
|
25
19
|
return;
|
|
26
20
|
}
|
|
@@ -28,8 +22,7 @@ var _default = (value, params) => {
|
|
|
28
22
|
if (parseFloat(value) >= parseFloat(params[0])) {
|
|
29
23
|
return;
|
|
30
24
|
}
|
|
31
|
-
throw new
|
|
25
|
+
throw new ValidationError("Value needs to be greater than or equal to " + params[0] + ".");
|
|
32
26
|
};
|
|
33
|
-
exports.default = _default;
|
|
34
27
|
|
|
35
28
|
//# sourceMappingURL=gte.js.map
|
package/validators/gte.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["ValidationError","value","params","undefined","parseFloat"],"sources":["gte.ts"],"sourcesContent":["import ValidationError from \"~/validationError.js\";\n\n/**\n * @name gte\n * @description \"Greater than or equals\" validator. This validator checks if the given values is greater than or equal to the `min` value.\n * @param {any} value This is the value that will be validated.\n * @param {any} min This is the value to validate against. It is passed as a validator parameter: `gte:valueToCompareAgainst`\n * @throws {ValidationError}\n * @example\n * import { validation } from '@webiny/validation';\n * validation.validate(10, 'gte:100').then(() => {\n * // Valid\n * }).catch(e => {\n * // Invalid\n * });\n */\nexport default (value: any, params?: string[]) => {\n if (value === undefined || value === null || !params) {\n return;\n }\n value = value + \"\";\n\n if (parseFloat(value) >= parseFloat(params[0])) {\n return;\n }\n throw new ValidationError(\"Value needs to be greater than or equal to \" + params[0] + \".\");\n};\n"],"mappings":"AAAA,OAAOA,eAAe;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,CAACC,KAAU,EAAEC,MAAiB,KAAK;EAC9C,IAAID,KAAK,KAAKE,SAAS,IAAIF,KAAK,KAAK,IAAI,IAAI,CAACC,MAAM,EAAE;IAClD;EACJ;EACAD,KAAK,GAAGA,KAAK,GAAG,EAAE;EAElB,IAAIG,UAAU,CAACH,KAAK,CAAC,IAAIG,UAAU,CAACF,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;IAC5C;EACJ;EACA,MAAM,IAAIF,eAAe,CAAC,6CAA6C,GAAGE,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC9F,CAAC","ignoreList":[]}
|
package/validators/in.js
CHANGED
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
import ValidationError from "../validationError.js";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var _validationError = _interopRequireDefault(require("../validationError"));
|
|
9
3
|
// In array validator. This validator checks if the given value is allowed to.
|
|
10
|
-
|
|
4
|
+
export default (value, params) => {
|
|
11
5
|
if (!value || !params) {
|
|
12
6
|
return;
|
|
13
7
|
}
|
|
@@ -15,8 +9,7 @@ var _default = (value, params) => {
|
|
|
15
9
|
if (params.includes(value)) {
|
|
16
10
|
return;
|
|
17
11
|
}
|
|
18
|
-
throw new
|
|
12
|
+
throw new ValidationError("Value must be one of the following: " + params.join(", ") + ".");
|
|
19
13
|
};
|
|
20
|
-
exports.default = _default;
|
|
21
14
|
|
|
22
15
|
//# sourceMappingURL=in.js.map
|
package/validators/in.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["ValidationError","value","params","includes","join"],"sources":["in.ts"],"sourcesContent":["import ValidationError from \"~/validationError.js\";\n\n// In array validator. This validator checks if the given value is allowed to.\nexport default (value: any, params?: string[]) => {\n if (!value || !params) {\n return;\n }\n value = value + \"\";\n\n if (params.includes(value)) {\n return;\n }\n\n throw new ValidationError(\"Value must be one of the following: \" + params.join(\", \") + \".\");\n};\n"],"mappings":"AAAA,OAAOA,eAAe;;AAEtB;AACA,eAAe,CAACC,KAAU,EAAEC,MAAiB,KAAK;EAC9C,IAAI,CAACD,KAAK,IAAI,CAACC,MAAM,EAAE;IACnB;EACJ;EACAD,KAAK,GAAGA,KAAK,GAAG,EAAE;EAElB,IAAIC,MAAM,CAACC,QAAQ,CAACF,KAAK,CAAC,EAAE;IACxB;EACJ;EAEA,MAAM,IAAID,eAAe,CAAC,sCAAsC,GAAGE,MAAM,CAACE,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;AAC/F,CAAC","ignoreList":[]}
|
package/validators/integer.js
CHANGED
|
@@ -1,21 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var _isInteger = _interopRequireDefault(require("lodash/isInteger"));
|
|
9
|
-
var _validationError = _interopRequireDefault(require("../validationError"));
|
|
10
|
-
var _default = value => {
|
|
1
|
+
import isInteger from "lodash/isInteger.js";
|
|
2
|
+
import ValidationError from "../validationError.js";
|
|
3
|
+
export default value => {
|
|
11
4
|
if (!value) {
|
|
12
5
|
return;
|
|
13
6
|
}
|
|
14
|
-
if ((
|
|
7
|
+
if (isInteger(value)) {
|
|
15
8
|
return;
|
|
16
9
|
}
|
|
17
|
-
throw new
|
|
10
|
+
throw new ValidationError("Value needs to be an integer.");
|
|
18
11
|
};
|
|
19
|
-
exports.default = _default;
|
|
20
12
|
|
|
21
13
|
//# sourceMappingURL=integer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["isInteger","ValidationError","value"],"sources":["integer.ts"],"sourcesContent":["import isInteger from \"lodash/isInteger.js\";\nimport ValidationError from \"~/validationError.js\";\n\nexport default (value: any) => {\n if (!value) {\n return;\n }\n\n if (isInteger(value)) {\n return;\n }\n\n throw new ValidationError(\"Value needs to be an integer.\");\n};\n"],"mappings":"AAAA,OAAOA,SAAS,MAAM,qBAAqB;AAC3C,OAAOC,eAAe;AAEtB,eAAgBC,KAAU,IAAK;EAC3B,IAAI,CAACA,KAAK,EAAE;IACR;EACJ;EAEA,IAAIF,SAAS,CAACE,KAAK,CAAC,EAAE;IAClB;EACJ;EAEA,MAAM,IAAID,eAAe,CAAC,+BAA+B,CAAC;AAC9D,CAAC","ignoreList":[]}
|
package/validators/json.js
CHANGED
|
@@ -1,21 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var _validationError = _interopRequireDefault(require("../validationError"));
|
|
9
|
-
var _default = value => {
|
|
1
|
+
import ValidationError from "../validationError.js";
|
|
2
|
+
export default value => {
|
|
10
3
|
if (!value) {
|
|
11
4
|
return;
|
|
12
5
|
}
|
|
13
6
|
try {
|
|
14
7
|
JSON.parse(value);
|
|
15
|
-
} catch
|
|
16
|
-
throw new
|
|
8
|
+
} catch {
|
|
9
|
+
throw new ValidationError("Value needs to be a valid JSON.");
|
|
17
10
|
}
|
|
18
11
|
};
|
|
19
|
-
exports.default = _default;
|
|
20
12
|
|
|
21
13
|
//# sourceMappingURL=json.js.map
|
package/validators/json.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["ValidationError","value","JSON","parse"],"sources":["json.ts"],"sourcesContent":["import ValidationError from \"~/validationError.js\";\n\nexport default (value: any) => {\n if (!value) {\n return;\n }\n\n try {\n JSON.parse(value);\n } catch {\n throw new ValidationError(\"Value needs to be a valid JSON.\");\n }\n};\n"],"mappings":"AAAA,OAAOA,eAAe;AAEtB,eAAgBC,KAAU,IAAK;EAC3B,IAAI,CAACA,KAAK,EAAE;IACR;EACJ;EAEA,IAAI;IACAC,IAAI,CAACC,KAAK,CAACF,KAAK,CAAC;EACrB,CAAC,CAAC,MAAM;IACJ,MAAM,IAAID,eAAe,CAAC,iCAAiC,CAAC;EAChE;AACJ,CAAC","ignoreList":[]}
|