@webiny/validation 0.0.0-unstable.ecd8734205 → 0.0.0-unstable.f6dc066313

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.
Files changed (61) hide show
  1. package/README.md +7 -405
  2. package/index.d.ts +4 -4
  3. package/index.js +52 -96
  4. package/index.js.map +1 -1
  5. package/package.json +9 -21
  6. package/types.d.ts +6 -3
  7. package/types.js +2 -4
  8. package/types.js.map +1 -1
  9. package/validation.d.ts +2 -2
  10. package/validation.js +22 -66
  11. package/validation.js.map +1 -1
  12. package/validationError.js +2 -17
  13. package/validationError.js.map +1 -1
  14. package/validators/creditCard.js +6 -25
  15. package/validators/creditCard.js.map +1 -1
  16. package/validators/dateGte.js +6 -20
  17. package/validators/dateGte.js.map +1 -1
  18. package/validators/dateLte.js +6 -20
  19. package/validators/dateLte.js.map +1 -1
  20. package/validators/email.js +5 -18
  21. package/validators/email.js.map +1 -1
  22. package/validators/eq.js +6 -16
  23. package/validators/eq.js.map +1 -1
  24. package/validators/gt.js +6 -16
  25. package/validators/gt.js.map +1 -1
  26. package/validators/gte.js +6 -16
  27. package/validators/gte.js.map +1 -1
  28. package/validators/in.js +4 -16
  29. package/validators/in.js.map +1 -1
  30. package/validators/integer.js +6 -19
  31. package/validators/integer.js.map +1 -1
  32. package/validators/json.js +5 -16
  33. package/validators/json.js.map +1 -1
  34. package/validators/lt.js +5 -18
  35. package/validators/lt.js.map +1 -1
  36. package/validators/lte.js +5 -18
  37. package/validators/lte.js.map +1 -1
  38. package/validators/maxLength.js +13 -32
  39. package/validators/maxLength.js.map +1 -1
  40. package/validators/minLength.js +13 -32
  41. package/validators/minLength.js.map +1 -1
  42. package/validators/number.js +8 -21
  43. package/validators/number.js.map +1 -1
  44. package/validators/numeric.js +7 -21
  45. package/validators/numeric.js.map +1 -1
  46. package/validators/password.js +4 -16
  47. package/validators/password.js.map +1 -1
  48. package/validators/phone.js +4 -17
  49. package/validators/phone.js.map +1 -1
  50. package/validators/required.js +4 -15
  51. package/validators/required.js.map +1 -1
  52. package/validators/slug.js +5 -18
  53. package/validators/slug.js.map +1 -1
  54. package/validators/time/index.js +10 -29
  55. package/validators/time/index.js.map +1 -1
  56. package/validators/timeGte.js +8 -23
  57. package/validators/timeGte.js.map +1 -1
  58. package/validators/timeLte.js +8 -23
  59. package/validators/timeLte.js.map +1 -1
  60. package/validators/url.js +8 -30
  61. package/validators/url.js.map +1 -1
package/types.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import ValidationError from "./validationError";
2
- declare type ValidatorResult = boolean | ValidationError | void | Promise<boolean | ValidationError | void>;
1
+ import type ValidationError from "./validationError.js";
2
+ type ValidatorResult = boolean | ValidationError | void | Promise<boolean | ValidationError | void>;
3
3
  /**
4
4
  * @typedef Validator
5
5
  * @name Validator
@@ -8,7 +8,10 @@ declare type ValidatorResult = boolean | ValidationError | void | Promise<boolea
8
8
  * @param {Array<string>} parameters (Optional) This represents an array validator parameters.
9
9
  * @throws {ValidationError}
10
10
  */
11
- export declare type Validator = (value: any, params?: string[]) => ValidatorResult;
11
+ export interface Validator {
12
+ (value: any, params?: string[]): ValidatorResult;
13
+ validatorName?: string;
14
+ }
12
15
  /**
13
16
  * @typedef ValidateOptions
14
17
  * @name ValidateOptions
package/types.js CHANGED
@@ -1,5 +1,3 @@
1
- "use strict";
1
+ export {};
2
2
 
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
3
+ //# sourceMappingURL=types.js.map
package/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import ValidationError from \"~/validationError\";\n\ntype ValidatorResult = boolean | ValidationError | void | Promise<boolean | ValidationError | void>;\n/**\n * @typedef Validator\n * @name Validator\n * @description This type defines the validator function.\n * @param {any} value This is the value being validated.\n * @param {Array<string>} parameters (Optional) This represents an array validator parameters.\n * @throws {ValidationError}\n */\nexport type Validator = (value: any, params?: string[]) => ValidatorResult;\n\n/**\n * @typedef ValidateOptions\n * @name ValidateOptions\n * @description This is an object containing validation options.\n * @property {boolean} throw Should validation throw on failure? Default: true.\n */\nexport interface ValidateOptions {\n throw?: boolean;\n}\n\n/**\n * @private\n * @typedef ParsedValidators\n * @name ParsedValidators\n * @description An object containing validators with parameters: `{ [string]: Array<string> }`.\n */\nexport interface ParsedValidators {\n [key: string]: Array<string>;\n}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type ValidationError from \"~/validationError.js\";\n\ntype ValidatorResult = boolean | ValidationError | void | Promise<boolean | ValidationError | void>;\n/**\n * @typedef Validator\n * @name Validator\n * @description This type defines the validator function.\n * @param {any} value This is the value being validated.\n * @param {Array<string>} parameters (Optional) This represents an array validator parameters.\n * @throws {ValidationError}\n */\nexport interface Validator {\n (value: any, params?: string[]): ValidatorResult;\n validatorName?: string;\n}\n\n/**\n * @typedef ValidateOptions\n * @name ValidateOptions\n * @description This is an object containing validation options.\n * @property {boolean} throw Should validation throw on failure? Default: true.\n */\nexport interface ValidateOptions {\n throw?: boolean;\n}\n\n/**\n * @private\n * @typedef ParsedValidators\n * @name ParsedValidators\n * @description An object containing validators with parameters: `{ [string]: Array<string> }`.\n */\nexport interface ParsedValidators {\n [key: string]: Array<string>;\n}\n"],"mappings":"","ignoreList":[]}
package/validation.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import ValidationError from "./validationError";
2
- import { Validator, ValidateOptions, ParsedValidators } 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,31 +1,16 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
- var _trim2 = _interopRequireDefault(require("lodash/trim"));
13
-
14
- var _isEmpty2 = _interopRequireDefault(require("lodash/isEmpty"));
15
-
16
- var _isString2 = _interopRequireDefault(require("lodash/isString"));
17
-
18
- var _validationError = _interopRequireDefault(require("./validationError"));
19
-
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";
20
5
  const entries = validators => {
21
6
  return Object.entries(validators);
22
7
  };
23
-
24
8
  const invalidRules = "Validators must be specified as a string (eg. required,minLength:10,email).";
25
9
  const createdValidators = {
26
10
  async: {},
27
11
  sync: {}
28
12
  };
13
+
29
14
  /**
30
15
  * Main class of Validation library.
31
16
  * Exported as a singleton instance, it offers methods for sync/async data validation and overwriting or adding new validators.
@@ -37,42 +22,40 @@ const createdValidators = {
37
22
  * // `validation` is a preconfigured instance of Validation class.
38
23
  * // From here you can either add new validators or use it as-is.
39
24
  */
40
-
41
25
  class Validation {
42
26
  /**
43
27
  * Contains a list of all set validators.
44
28
  * @private
45
29
  */
30
+
46
31
  constructor() {
47
- (0, _defineProperty2.default)(this, "__validators", void 0);
48
32
  this.__validators = {};
49
33
  }
34
+
50
35
  /**
51
36
  * Add new validator.
52
37
  * @param name Validator name.
53
38
  * @param callable Validator function which throws a ValidationError if validation fails.
54
39
  * @returns {Validation}
55
40
  */
56
-
57
-
58
41
  setValidator(name, callable) {
59
42
  this.__validators[name] = callable;
43
+ this.__validators[name].validatorName = name;
60
44
  return this;
61
45
  }
46
+
62
47
  /**
63
48
  * Get validator function by name.
64
49
  * @param name Validator name.
65
50
  * @returns {Validator} A validator function.
66
51
  */
67
-
68
-
69
52
  getValidator(name) {
70
53
  if (!this.__validators[name]) {
71
- throw new _validationError.default("Validator `" + name + "` does not exist!", name);
54
+ throw new ValidationError("Validator `" + name + "` does not exist!", name);
72
55
  }
73
-
74
56
  return this.__validators[name];
75
57
  }
58
+
76
59
  /**
77
60
  * Asynchronously validates value.
78
61
  * @param value Value to validate.
@@ -80,37 +63,29 @@ class Validation {
80
63
  * @param [options] Validation options.
81
64
  * @returns {Promise<boolean | ValidationError>}
82
65
  */
83
-
84
-
85
66
  async validate(value, validators, options = {}) {
86
- if ((0, _isString2.default)(validators) && (0, _isEmpty2.default)(validators)) {
67
+ if (isString(validators) && isEmpty(validators)) {
87
68
  return true;
88
69
  }
89
-
90
- if (!(0, _isString2.default)(validators)) {
70
+ if (!isString(validators)) {
91
71
  throw new Error(invalidRules);
92
72
  }
93
-
94
73
  const parsedValidateProperty = this.__parseValidateProperty(validators);
95
-
96
74
  for (const [name, params] of entries(parsedValidateProperty)) {
97
75
  const validator = this.getValidator(name);
98
-
99
76
  try {
100
77
  await validator(value, params);
101
78
  } catch (e) {
102
- const validationError = new _validationError.default(e.message, name, value);
103
-
79
+ const validationError = new ValidationError(e.message, name, value);
104
80
  if (options.throw === false) {
105
81
  return validationError;
106
82
  }
107
-
108
83
  throw validationError;
109
84
  }
110
85
  }
111
-
112
86
  return true;
113
87
  }
88
+
114
89
  /**
115
90
  * Synchronously validates value.
116
91
  * @param value Value to validate.
@@ -118,82 +93,63 @@ class Validation {
118
93
  * @param [options] Validation options.
119
94
  * @returns {Promise<boolean | ValidationError>}
120
95
  */
121
-
122
-
123
96
  validateSync(value, validators, options = {}) {
124
- if ((0, _isString2.default)(validators) && (0, _isEmpty2.default)(validators)) {
97
+ if (isString(validators) && isEmpty(validators)) {
125
98
  return true;
126
99
  }
127
-
128
- if (!(0, _isString2.default)(validators)) {
100
+ if (!isString(validators)) {
129
101
  throw new Error(invalidRules);
130
102
  }
131
-
132
103
  const parsedValidateProperty = this.__parseValidateProperty(validators);
133
-
134
104
  for (const [name, params] of entries(parsedValidateProperty)) {
135
105
  const validator = this.getValidator(name);
136
-
137
106
  try {
138
107
  validator(value, params);
139
108
  } catch (e) {
140
- const validationError = new _validationError.default(e.message, name, value);
141
-
109
+ const validationError = new ValidationError(e.message, name, value);
142
110
  if (options.throw === false) {
143
111
  return validationError;
144
112
  }
145
-
146
113
  throw validationError;
147
114
  }
148
115
  }
149
-
150
116
  return true;
151
117
  }
152
-
153
118
  create(validators) {
154
119
  if (createdValidators.async[validators]) {
155
120
  return createdValidators.async[validators];
156
121
  }
157
-
158
122
  createdValidators.async[validators] = value => this.validate(value, validators);
159
-
160
123
  return createdValidators.async[validators];
161
124
  }
162
-
163
125
  createSync(validators) {
164
126
  if (createdValidators.sync[validators]) {
165
127
  return createdValidators.sync[validators];
166
128
  }
167
-
168
129
  createdValidators.sync[validators] = value => this.validateSync(value, validators);
169
-
170
130
  return createdValidators.sync[validators];
171
131
  }
132
+
172
133
  /**
173
134
  * Parses a string of validators with parameters.
174
135
  * @param validators A list of comma-separated validators (eg. required,number,gt:20).
175
136
  * @returns {ParsedValidators}
176
137
  * @private
177
138
  */
178
-
179
-
180
139
  __parseValidateProperty(validators) {
181
140
  const validate = validators.split(",");
182
141
  const parsedValidators = {};
183
142
  validate.forEach(v => {
184
- const params = (0, _trim2.default)(v).split(":");
143
+ const params = trim(v).split(":");
185
144
  const vName = params.shift();
186
-
187
145
  if (!vName) {
188
146
  return;
189
147
  }
190
-
191
148
  parsedValidators[vName] = params;
192
149
  });
193
150
  return parsedValidators;
194
151
  }
195
-
196
152
  }
153
+ export default Validation;
197
154
 
198
- var _default = Validation;
199
- exports.default = _default;
155
+ //# sourceMappingURL=validation.js.map
package/validation.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["entries","validators","Object","invalidRules","createdValidators","async","sync","Validation","constructor","__validators","setValidator","name","callable","getValidator","ValidationError","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 _ from \"lodash\";\nimport ValidationError from \"./validationError\";\nimport { Validator, ValidateOptions, ParsedValidators } 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 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":";;;;;;;;;;;;;;;;;AACA;;AAGA,MAAMA,OAAO,GAAIC,UAAD,IAAkE;EAC9E,OAAOC,MAAM,CAACF,OAAP,CAAeC,UAAf,CAAP;AACH,CAFD;;AAIA,MAAME,YAAY,GAAG,6EAArB;AAMA,MAAMC,iBAAoC,GAAG;EACzCC,KAAK,EAAE,EADkC;EAEzCC,IAAI,EAAE;AAFmC,CAA7C;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,UAAN,CAAiB;EACb;AACJ;AACA;AACA;EAKIC,WAAW,GAAG;IAAA;IACV,KAAKC,YAAL,GAAoB,EAApB;EACH;EAED;AACJ;AACA;AACA;AACA;AACA;;;EACIC,YAAY,CAACC,IAAD,EAAeC,QAAf,EAA0C;IAClD,KAAKH,YAAL,CAAkBE,IAAlB,IAA0BC,QAA1B;IACA,OAAO,IAAP;EACH;EAED;AACJ;AACA;AACA;AACA;;;EACIC,YAAY,CAACF,IAAD,EAA0B;IAClC,IAAI,CAAC,KAAKF,YAAL,CAAkBE,IAAlB,CAAL,EAA8B;MAC1B,MAAM,IAAIG,wBAAJ,CAAoB,gBAAgBH,IAAhB,GAAuB,mBAA3C,EAAgEA,IAAhE,CAAN;IACH;;IACD,OAAO,KAAKF,YAAL,CAAkBE,IAAlB,CAAP;EACH;EAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACkB,MAARI,QAAQ,CACVC,KADU,EAEVf,UAFU,EAGVgB,OAAwB,GAAG,EAHjB,EAIwB;IAClC,IAAI,wBAAWhB,UAAX,KAA0B,uBAAUA,UAAV,CAA9B,EAAqD;MACjD,OAAO,IAAP;IACH;;IAED,IAAI,CAAC,wBAAWA,UAAX,CAAL,EAA6B;MACzB,MAAM,IAAIiB,KAAJ,CAAUf,YAAV,CAAN;IACH;;IAED,MAAMgB,sBAAsB,GAAG,KAAKC,uBAAL,CAA6BnB,UAA7B,CAA/B;;IAEA,KAAK,MAAM,CAACU,IAAD,EAAOU,MAAP,CAAX,IAA6BrB,OAAO,CAACmB,sBAAD,CAApC,EAA8D;MAC1D,MAAMG,SAAS,GAAG,KAAKT,YAAL,CAAkBF,IAAlB,CAAlB;;MACA,IAAI;QACA,MAAMW,SAAS,CAACN,KAAD,EAAQK,MAAR,CAAf;MACH,CAFD,CAEE,OAAOE,CAAP,EAAU;QACR,MAAMC,eAAe,GAAG,IAAIV,wBAAJ,CAAoBS,CAAC,CAACE,OAAtB,EAA+Bd,IAA/B,EAAqCK,KAArC,CAAxB;;QACA,IAAIC,OAAO,CAACS,KAAR,KAAkB,KAAtB,EAA6B;UACzB,OAAOF,eAAP;QACH;;QACD,MAAMA,eAAN;MACH;IACJ;;IACD,OAAO,IAAP;EACH;EAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACIG,YAAY,CACRX,KADQ,EAERf,UAFQ,EAGRgB,OAAwB,GAAG,EAHnB,EAIiB;IACzB,IAAI,wBAAWhB,UAAX,KAA0B,uBAAUA,UAAV,CAA9B,EAAqD;MACjD,OAAO,IAAP;IACH;;IAED,IAAI,CAAC,wBAAWA,UAAX,CAAL,EAA6B;MACzB,MAAM,IAAIiB,KAAJ,CAAUf,YAAV,CAAN;IACH;;IAED,MAAMgB,sBAAsB,GAAG,KAAKC,uBAAL,CAA6BnB,UAA7B,CAA/B;;IAEA,KAAK,MAAM,CAACU,IAAD,EAAOU,MAAP,CAAX,IAA6BrB,OAAO,CAACmB,sBAAD,CAApC,EAA8D;MAC1D,MAAMG,SAAS,GAAG,KAAKT,YAAL,CAAkBF,IAAlB,CAAlB;;MACA,IAAI;QACAW,SAAS,CAACN,KAAD,EAAQK,MAAR,CAAT;MACH,CAFD,CAEE,OAAOE,CAAP,EAAU;QACR,MAAMC,eAAe,GAAG,IAAIV,wBAAJ,CAAoBS,CAAC,CAACE,OAAtB,EAA+Bd,IAA/B,EAAqCK,KAArC,CAAxB;;QACA,IAAIC,OAAO,CAACS,KAAR,KAAkB,KAAtB,EAA6B;UACzB,OAAOF,eAAP;QACH;;QACD,MAAMA,eAAN;MACH;IACJ;;IACD,OAAO,IAAP;EACH;;EAEDI,MAAM,CAAC3B,UAAD,EAAqB;IACvB,IAAIG,iBAAiB,CAACC,KAAlB,CAAwBJ,UAAxB,CAAJ,EAAyC;MACrC,OAAOG,iBAAiB,CAACC,KAAlB,CAAwBJ,UAAxB,CAAP;IACH;;IAEDG,iBAAiB,CAACC,KAAlB,CAAwBJ,UAAxB,IAAsCe,KAAK,IAAI,KAAKD,QAAL,CAAcC,KAAd,EAAqBf,UAArB,CAA/C;;IACA,OAAOG,iBAAiB,CAACC,KAAlB,CAAwBJ,UAAxB,CAAP;EACH;;EAED4B,UAAU,CAAC5B,UAAD,EAAqB;IAC3B,IAAIG,iBAAiB,CAACE,IAAlB,CAAuBL,UAAvB,CAAJ,EAAwC;MACpC,OAAOG,iBAAiB,CAACE,IAAlB,CAAuBL,UAAvB,CAAP;IACH;;IAEDG,iBAAiB,CAACE,IAAlB,CAAuBL,UAAvB,IAAqCe,KAAK,IAAI,KAAKW,YAAL,CAAkBX,KAAlB,EAAyBf,UAAzB,CAA9C;;IACA,OAAOG,iBAAiB,CAACE,IAAlB,CAAuBL,UAAvB,CAAP;EACH;EAED;AACJ;AACA;AACA;AACA;AACA;;;EACImB,uBAAuB,CAACnB,UAAD,EAAuC;IAC1D,MAAMc,QAAuB,GAAGd,UAAU,CAAC6B,KAAX,CAAiB,GAAjB,CAAhC;IAEA,MAAMC,gBAAkC,GAAG,EAA3C;IACAhB,QAAQ,CAACiB,OAAT,CAAkBC,CAAD,IAAe;MAC5B,MAAMZ,MAAM,GAAG,oBAAOY,CAAP,EAAUH,KAAV,CAAgB,GAAhB,CAAf;MACA,MAAMI,KAAK,GAAGb,MAAM,CAACc,KAAP,EAAd;;MACA,IAAI,CAACD,KAAL,EAAY;QACR;MACH;;MACDH,gBAAgB,CAACG,KAAD,CAAhB,GAA0Bb,MAA1B;IACH,CAPD;IAQA,OAAOU,gBAAP;EACH;;AAnJY;;eAsJFxB,U"}
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":[]}
@@ -1,29 +1,14 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
1
  /**
13
2
  * This class is used by validators to throw an error when value validation fails.
14
3
  */
15
4
  class ValidationError extends Error {
16
5
  constructor(message = "", validator = null, value = null) {
17
6
  super();
18
- (0, _defineProperty2.default)(this, "message", void 0);
19
- (0, _defineProperty2.default)(this, "validator", void 0);
20
- (0, _defineProperty2.default)(this, "value", void 0);
21
7
  this.message = message;
22
8
  this.validator = validator;
23
9
  this.value = value;
24
10
  }
25
-
26
11
  }
12
+ export default ValidationError;
27
13
 
28
- var _default = ValidationError;
29
- exports.default = _default;
14
+ //# sourceMappingURL=validationError.js.map
@@ -1 +1 @@
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,eAAN,SAA8BC,KAA9B,CAAoC;EAKhCC,WAAW,CAACC,OAAO,GAAG,EAAX,EAAeC,SAAwB,GAAG,IAA1C,EAAgDC,KAAoB,GAAG,IAAvE,EAA6E;IACpF;IADoF;IAAA;IAAA;IAEpF,KAAKF,OAAL,GAAeA,OAAf;IACA,KAAKC,SAAL,GAAiBA,SAAjB;IACA,KAAKC,KAAL,GAAaA,KAAb;EACH;;AAV+B;;eAarBL,e"}
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":[]}
@@ -1,13 +1,4 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _validationError = _interopRequireDefault(require("../validationError"));
1
+ import ValidationError from "../validationError.js";
11
2
 
12
3
  /**
13
4
  * @name creditCard
@@ -22,48 +13,38 @@ var _validationError = _interopRequireDefault(require("../validationError"));
22
13
  * // Invalid
23
14
  * });
24
15
  */
25
- var _default = value => {
16
+ export default value => {
26
17
  if (!value) {
27
18
  return;
28
19
  }
29
-
30
20
  value = value + "";
31
-
32
21
  if (value.length < 12) {
33
- throw new _validationError.default("Credit card number too short.");
22
+ throw new ValidationError("Credit card number too short.");
34
23
  }
35
-
36
24
  if (/[^0-9-\s]+/.test(value)) {
37
- throw new _validationError.default("Credit card number invalid.");
25
+ throw new ValidationError("Credit card number invalid.");
38
26
  }
39
-
40
27
  let nCheck = 0;
41
28
  let nDigit = 0;
42
29
  let bEven = false;
43
30
  value = value.replace(/ /g, "");
44
31
  value = value.replace(/\D/g, "");
45
-
46
32
  for (let n = value.length - 1; n >= 0; n--) {
47
33
  const cDigit = value.charAt(n);
48
34
  nDigit = parseInt(cDigit);
49
-
50
35
  if (bEven) {
51
36
  nDigit *= 2;
52
-
53
37
  if (nDigit > 9) {
54
38
  nDigit -= 9;
55
39
  }
56
40
  }
57
-
58
41
  nCheck += nDigit;
59
42
  bEven = !bEven;
60
43
  }
61
-
62
44
  if (nCheck % 10 === 0) {
63
45
  return;
64
46
  }
65
-
66
- throw new _validationError.default("Credit card number invalid.");
47
+ throw new ValidationError("Credit card number invalid.");
67
48
  };
68
49
 
69
- exports.default = _default;
50
+ //# sourceMappingURL=creditCard.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["value","length","ValidationError","test","nCheck","nDigit","bEven","replace","n","cDigit","charAt","parseInt"],"sources":["creditCard.ts"],"sourcesContent":["import ValidationError from \"~/validationError\";\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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;eACgBA,KAAD,IAAsB;EACjC,IAAI,CAACA,KAAL,EAAY;IACR;EACH;;EACDA,KAAK,GAAGA,KAAK,GAAG,EAAhB;;EAEA,IAAIA,KAAK,CAACC,MAAN,GAAe,EAAnB,EAAuB;IACnB,MAAM,IAAIC,wBAAJ,CAAoB,+BAApB,CAAN;EACH;;EAED,IAAI,aAAaC,IAAb,CAAkBH,KAAlB,CAAJ,EAA8B;IAC1B,MAAM,IAAIE,wBAAJ,CAAoB,6BAApB,CAAN;EACH;;EAED,IAAIE,MAAM,GAAG,CAAb;EACA,IAAIC,MAAM,GAAG,CAAb;EACA,IAAIC,KAAK,GAAG,KAAZ;EAEAN,KAAK,GAAGA,KAAK,CAACO,OAAN,CAAc,IAAd,EAAoB,EAApB,CAAR;EACAP,KAAK,GAAGA,KAAK,CAACO,OAAN,CAAc,KAAd,EAAqB,EAArB,CAAR;;EAEA,KAAK,IAAIC,CAAC,GAAGR,KAAK,CAACC,MAAN,GAAe,CAA5B,EAA+BO,CAAC,IAAI,CAApC,EAAuCA,CAAC,EAAxC,EAA4C;IACxC,MAAMC,MAAM,GAAGT,KAAK,CAACU,MAAN,CAAaF,CAAb,CAAf;IACAH,MAAM,GAAGM,QAAQ,CAACF,MAAD,CAAjB;;IAEA,IAAIH,KAAJ,EAAW;MACPD,MAAM,IAAI,CAAV;;MACA,IAAIA,MAAM,GAAG,CAAb,EAAgB;QACZA,MAAM,IAAI,CAAV;MACH;IACJ;;IAEDD,MAAM,IAAIC,MAAV;IACAC,KAAK,GAAG,CAACA,KAAT;EACH;;EAED,IAAIF,MAAM,GAAG,EAAT,KAAgB,CAApB,EAAuB;IACnB;EACH;;EAED,MAAM,IAAIF,wBAAJ,CAAoB,6BAApB,CAAN;AACH,C"}
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":[]}
@@ -1,37 +1,23 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _validationError = _interopRequireDefault(require("../validationError"));
1
+ import ValidationError from "../validationError.js";
11
2
 
12
3
  /**
13
4
  * Validates that given value is a greater or equal date to a gteValue
14
5
  */
15
- var _default = (value, params) => {
6
+ export default (value, params) => {
16
7
  if (!value || !params) {
17
8
  return;
18
- } // we need to join because validation params are being split by :
19
-
20
-
9
+ }
10
+ // we need to join because validation params are being split by :
21
11
  const gteValue = params.join(":");
22
-
23
12
  if (!gteValue) {
24
13
  return;
25
14
  }
26
-
27
15
  const date = new Date(value);
28
16
  const gteDate = new Date(gteValue);
29
-
30
17
  if (date >= gteDate) {
31
18
  return;
32
19
  }
33
-
34
- throw new _validationError.default(`Value needs to be greater than or equal to "${gteDate.toISOString()}".`);
20
+ throw new ValidationError(`Value needs to be greater than or equal to "${gteDate.toISOString()}".`);
35
21
  };
36
22
 
37
- exports.default = _default;
23
+ //# sourceMappingURL=dateGte.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["value","params","gteValue","join","date","Date","gteDate","ValidationError","toISOString"],"sources":["dateGte.ts"],"sourcesContent":["import ValidationError from \"~/validationError\";\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;;AAEA;AACA;AACA;eACe,CAACA,KAAD,EAAgBC,MAAhB,KAAsC;EACjD,IAAI,CAACD,KAAD,IAAU,CAACC,MAAf,EAAuB;IACnB;EACH,CAHgD,CAIjD;;;EACA,MAAMC,QAAQ,GAAGD,MAAM,CAACE,IAAP,CAAY,GAAZ,CAAjB;;EACA,IAAI,CAACD,QAAL,EAAe;IACX;EACH;;EAED,MAAME,IAAI,GAAG,IAAIC,IAAJ,CAASL,KAAT,CAAb;EACA,MAAMM,OAAO,GAAG,IAAID,IAAJ,CAASH,QAAT,CAAhB;;EAEA,IAAIE,IAAI,IAAIE,OAAZ,EAAqB;IACjB;EACH;;EACD,MAAM,IAAIC,wBAAJ,CACD,+CAA8CD,OAAO,CAACE,WAAR,EAAsB,IADnE,CAAN;AAGH,C"}
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":[]}
@@ -1,37 +1,23 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _validationError = _interopRequireDefault(require("../validationError"));
1
+ import ValidationError from "../validationError.js";
11
2
 
12
3
  /**
13
4
  * Validates that given value is a lesser than or equal date to a lteValue
14
5
  */
15
- var _default = (value, params) => {
6
+ export default (value, params) => {
16
7
  if (!value || !params) {
17
8
  return;
18
- } // we need to join because validation params are being split by :
19
-
20
-
9
+ }
10
+ // we need to join because validation params are being split by :
21
11
  const lteValue = params.join(":");
22
-
23
12
  if (!lteValue) {
24
13
  return;
25
14
  }
26
-
27
15
  const date = new Date(value);
28
16
  const lteDate = new Date(lteValue);
29
-
30
17
  if (date <= lteDate) {
31
18
  return;
32
19
  }
33
-
34
- throw new _validationError.default(`Value needs to be lesser than or equal to "${lteDate.toISOString()}".`);
20
+ throw new ValidationError(`Value needs to be lesser than or equal to "${lteDate.toISOString()}".`);
35
21
  };
36
22
 
37
- exports.default = _default;
23
+ //# sourceMappingURL=dateLte.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["value","params","lteValue","join","date","Date","lteDate","ValidationError","toISOString"],"sources":["dateLte.ts"],"sourcesContent":["import ValidationError from \"~/validationError\";\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;;AAEA;AACA;AACA;eACe,CAACA,KAAD,EAAgBC,MAAhB,KAAsC;EACjD,IAAI,CAACD,KAAD,IAAU,CAACC,MAAf,EAAuB;IACnB;EACH,CAHgD,CAIjD;;;EACA,MAAMC,QAAQ,GAAGD,MAAM,CAACE,IAAP,CAAY,GAAZ,CAAjB;;EACA,IAAI,CAACD,QAAL,EAAe;IACX;EACH;;EAED,MAAME,IAAI,GAAG,IAAIC,IAAJ,CAASL,KAAT,CAAb;EACA,MAAMM,OAAO,GAAG,IAAID,IAAJ,CAASH,QAAT,CAAhB;;EAEA,IAAIE,IAAI,IAAIE,OAAZ,EAAqB;IACjB;EACH;;EACD,MAAM,IAAIC,wBAAJ,CACD,8CAA6CD,OAAO,CAACE,WAAR,EAAsB,IADlE,CAAN;AAGH,C"}
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":[]}
@@ -1,13 +1,4 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _validationError = _interopRequireDefault(require("../validationError"));
1
+ import ValidationError from "../validationError.js";
11
2
 
12
3
  /**
13
4
  * @name email
@@ -22,20 +13,16 @@ var _validationError = _interopRequireDefault(require("../validationError"));
22
13
  * // Invalid
23
14
  * });
24
15
  */
25
- var _default = value => {
16
+ export default value => {
26
17
  if (!value) {
27
18
  return;
28
19
  }
29
-
30
- value = value + ""; // eslint-disable-next-line
31
-
20
+ value = value + "";
32
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,}))$/;
33
-
34
22
  if (!value || value.length && re.test(value)) {
35
23
  return;
36
24
  }
37
-
38
- throw new _validationError.default("Value must be a valid e-mail address.");
25
+ throw new ValidationError("Value must be a valid e-mail address.");
39
26
  };
40
27
 
41
- exports.default = _default;
28
+ //# sourceMappingURL=email.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["value","re","length","test","ValidationError"],"sources":["email.ts"],"sourcesContent":["import ValidationError from \"~/validationError\";\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 // eslint-disable-next-line\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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;eACgBA,KAAD,IAAsB;EACjC,IAAI,CAACA,KAAL,EAAY;IACR;EACH;;EACDA,KAAK,GAAGA,KAAK,GAAG,EAAhB,CAJiC,CAMjC;;EACA,MAAMC,EAAE,GACJ,sJADJ;;EAEA,IAAI,CAACD,KAAD,IAAWA,KAAK,CAACE,MAAN,IAAgBD,EAAE,CAACE,IAAH,CAAQH,KAAR,CAA/B,EAAgD;IAC5C;EACH;;EACD,MAAM,IAAII,wBAAJ,CAAoB,uCAApB,CAAN;AACH,C"}
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":[]}