@decaf-ts/decorator-validation 1.4.20 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (175) hide show
  1. package/LICENSE.md +0 -0
  2. package/README.md +0 -0
  3. package/dist/decorator-validation.bundle.min.js +1 -1
  4. package/dist/decorator-validation.bundle.min.js.LICENSE.txt +0 -0
  5. package/dist/esm/decorator-validation.bundle.min.esm.js +1 -1
  6. package/dist/esm/decorator-validation.bundle.min.esm.js.LICENSE.txt +0 -0
  7. package/lib/esm/index.d.ts +1 -1
  8. package/lib/esm/index.js +1 -3
  9. package/lib/esm/model/Model.d.ts +1 -2
  10. package/lib/esm/model/Model.js +3 -6
  11. package/lib/esm/model/ModelErrorDefinition.d.ts +0 -0
  12. package/lib/esm/model/ModelErrorDefinition.js +0 -2
  13. package/lib/esm/model/Registry.d.ts +0 -0
  14. package/lib/esm/model/Registry.js +0 -2
  15. package/lib/esm/model/constants.d.ts +0 -0
  16. package/lib/esm/model/constants.js +0 -2
  17. package/lib/esm/model/construction.d.ts +0 -0
  18. package/lib/esm/model/construction.js +0 -2
  19. package/lib/esm/model/decorators.d.ts +0 -0
  20. package/lib/esm/model/decorators.js +0 -2
  21. package/lib/esm/model/index.d.ts +0 -0
  22. package/lib/esm/model/index.js +0 -2
  23. package/lib/esm/model/types.d.ts +0 -0
  24. package/lib/esm/model/types.js +0 -2
  25. package/lib/esm/model/utils.d.ts +0 -0
  26. package/lib/esm/model/utils.js +0 -2
  27. package/lib/esm/model/validation.d.ts +0 -0
  28. package/lib/esm/model/validation.js +3 -4
  29. package/lib/esm/utils/constants.d.ts +0 -0
  30. package/lib/esm/utils/constants.js +0 -2
  31. package/lib/esm/utils/dates.d.ts +0 -0
  32. package/lib/esm/utils/dates.js +0 -2
  33. package/lib/esm/utils/decorators.d.ts +0 -0
  34. package/lib/esm/utils/decorators.js +0 -2
  35. package/lib/esm/utils/hashing.d.ts +0 -0
  36. package/lib/esm/utils/hashing.js +0 -2
  37. package/lib/esm/utils/index.d.ts +0 -0
  38. package/lib/esm/utils/index.js +0 -2
  39. package/lib/esm/utils/registry.d.ts +0 -0
  40. package/lib/esm/utils/registry.js +0 -2
  41. package/lib/esm/utils/serialization.d.ts +0 -0
  42. package/lib/esm/utils/serialization.js +0 -2
  43. package/lib/esm/utils/strings.d.ts +0 -0
  44. package/lib/esm/utils/strings.js +0 -2
  45. package/lib/esm/validation/Validation.d.ts +0 -0
  46. package/lib/esm/validation/Validation.js +0 -2
  47. package/lib/esm/validation/Validators/DateValidator.d.ts +7 -5
  48. package/lib/esm/validation/Validators/DateValidator.js +6 -7
  49. package/lib/esm/validation/Validators/EmailValidator.d.ts +3 -4
  50. package/lib/esm/validation/Validators/EmailValidator.js +7 -7
  51. package/lib/esm/validation/Validators/ListValidator.d.ts +7 -5
  52. package/lib/esm/validation/Validators/ListValidator.js +4 -7
  53. package/lib/esm/validation/Validators/MaxLengthValidator.d.ts +7 -5
  54. package/lib/esm/validation/Validators/MaxLengthValidator.js +4 -7
  55. package/lib/esm/validation/Validators/MaxValidator.d.ts +7 -5
  56. package/lib/esm/validation/Validators/MaxValidator.js +5 -7
  57. package/lib/esm/validation/Validators/MinLengthValidator.d.ts +7 -5
  58. package/lib/esm/validation/Validators/MinLengthValidator.js +5 -8
  59. package/lib/esm/validation/Validators/MinValidator.d.ts +7 -5
  60. package/lib/esm/validation/Validators/MinValidator.js +5 -7
  61. package/lib/esm/validation/Validators/PasswordValidator.d.ts +3 -4
  62. package/lib/esm/validation/Validators/PasswordValidator.js +6 -6
  63. package/lib/esm/validation/Validators/PatternValidator.d.ts +7 -5
  64. package/lib/esm/validation/Validators/PatternValidator.js +5 -7
  65. package/lib/esm/validation/Validators/RequiredValidator.d.ts +3 -3
  66. package/lib/esm/validation/Validators/RequiredValidator.js +7 -7
  67. package/lib/esm/validation/Validators/StepValidator.d.ts +7 -4
  68. package/lib/esm/validation/Validators/StepValidator.js +5 -7
  69. package/lib/esm/validation/Validators/TypeValidator.d.ts +9 -7
  70. package/lib/esm/validation/Validators/TypeValidator.js +4 -6
  71. package/lib/esm/validation/Validators/URLValidator.d.ts +9 -3
  72. package/lib/esm/validation/Validators/URLValidator.js +3 -5
  73. package/lib/esm/validation/Validators/Validator.d.ts +6 -3
  74. package/lib/esm/validation/Validators/Validator.js +0 -2
  75. package/lib/esm/validation/Validators/ValidatorRegistry.d.ts +0 -0
  76. package/lib/esm/validation/Validators/ValidatorRegistry.js +0 -2
  77. package/lib/esm/validation/Validators/constants.d.ts +0 -0
  78. package/lib/esm/validation/Validators/constants.js +0 -2
  79. package/lib/esm/validation/Validators/decorators.d.ts +0 -0
  80. package/lib/esm/validation/Validators/decorators.js +0 -2
  81. package/lib/esm/validation/Validators/index.d.ts +0 -0
  82. package/lib/esm/validation/Validators/index.js +0 -2
  83. package/lib/esm/validation/Validators/types.d.ts +0 -0
  84. package/lib/esm/validation/Validators/types.js +1 -0
  85. package/lib/esm/validation/decorators.d.ts +0 -0
  86. package/lib/esm/validation/decorators.js +7 -9
  87. package/lib/esm/validation/index.d.ts +0 -0
  88. package/lib/esm/validation/index.js +0 -2
  89. package/lib/esm/validation/types.d.ts +0 -0
  90. package/lib/esm/validation/types.js +0 -2
  91. package/lib/index.cjs +1 -1
  92. package/lib/index.d.ts +1 -1
  93. package/lib/model/Model.cjs +3 -4
  94. package/lib/model/Model.d.ts +1 -2
  95. package/lib/model/ModelErrorDefinition.cjs +0 -0
  96. package/lib/model/ModelErrorDefinition.d.ts +0 -0
  97. package/lib/model/Registry.cjs +0 -0
  98. package/lib/model/Registry.d.ts +0 -0
  99. package/lib/model/constants.cjs +0 -0
  100. package/lib/model/constants.d.ts +0 -0
  101. package/lib/model/construction.cjs +0 -0
  102. package/lib/model/construction.d.ts +0 -0
  103. package/lib/model/decorators.cjs +0 -0
  104. package/lib/model/decorators.d.ts +0 -0
  105. package/lib/model/index.cjs +0 -0
  106. package/lib/model/index.d.ts +0 -0
  107. package/lib/model/types.cjs +0 -0
  108. package/lib/model/types.d.ts +0 -0
  109. package/lib/model/utils.cjs +0 -0
  110. package/lib/model/utils.d.ts +0 -0
  111. package/lib/model/validation.cjs +3 -2
  112. package/lib/model/validation.d.ts +0 -0
  113. package/lib/utils/constants.cjs +0 -0
  114. package/lib/utils/constants.d.ts +0 -0
  115. package/lib/utils/dates.cjs +0 -0
  116. package/lib/utils/dates.d.ts +0 -0
  117. package/lib/utils/decorators.cjs +0 -0
  118. package/lib/utils/decorators.d.ts +0 -0
  119. package/lib/utils/hashing.cjs +0 -0
  120. package/lib/utils/hashing.d.ts +0 -0
  121. package/lib/utils/index.cjs +0 -0
  122. package/lib/utils/index.d.ts +0 -0
  123. package/lib/utils/registry.cjs +0 -0
  124. package/lib/utils/registry.d.ts +0 -0
  125. package/lib/utils/serialization.cjs +0 -0
  126. package/lib/utils/serialization.d.ts +0 -0
  127. package/lib/utils/strings.cjs +0 -0
  128. package/lib/utils/strings.d.ts +0 -0
  129. package/lib/validation/Validation.cjs +0 -0
  130. package/lib/validation/Validation.d.ts +0 -0
  131. package/lib/validation/Validators/DateValidator.cjs +5 -4
  132. package/lib/validation/Validators/DateValidator.d.ts +7 -5
  133. package/lib/validation/Validators/EmailValidator.cjs +6 -4
  134. package/lib/validation/Validators/EmailValidator.d.ts +3 -4
  135. package/lib/validation/Validators/ListValidator.cjs +4 -5
  136. package/lib/validation/Validators/ListValidator.d.ts +7 -5
  137. package/lib/validation/Validators/MaxLengthValidator.cjs +4 -5
  138. package/lib/validation/Validators/MaxLengthValidator.d.ts +7 -5
  139. package/lib/validation/Validators/MaxValidator.cjs +4 -4
  140. package/lib/validation/Validators/MaxValidator.d.ts +7 -5
  141. package/lib/validation/Validators/MinLengthValidator.cjs +4 -5
  142. package/lib/validation/Validators/MinLengthValidator.d.ts +7 -5
  143. package/lib/validation/Validators/MinValidator.cjs +4 -4
  144. package/lib/validation/Validators/MinValidator.d.ts +7 -5
  145. package/lib/validation/Validators/PasswordValidator.cjs +6 -4
  146. package/lib/validation/Validators/PasswordValidator.d.ts +3 -4
  147. package/lib/validation/Validators/PatternValidator.cjs +4 -4
  148. package/lib/validation/Validators/PatternValidator.d.ts +7 -5
  149. package/lib/validation/Validators/RequiredValidator.cjs +6 -4
  150. package/lib/validation/Validators/RequiredValidator.d.ts +3 -3
  151. package/lib/validation/Validators/StepValidator.cjs +4 -4
  152. package/lib/validation/Validators/StepValidator.d.ts +7 -4
  153. package/lib/validation/Validators/TypeValidator.cjs +4 -4
  154. package/lib/validation/Validators/TypeValidator.d.ts +9 -7
  155. package/lib/validation/Validators/URLValidator.cjs +3 -3
  156. package/lib/validation/Validators/URLValidator.d.ts +9 -3
  157. package/lib/validation/Validators/Validator.cjs +0 -0
  158. package/lib/validation/Validators/Validator.d.ts +6 -3
  159. package/lib/validation/Validators/ValidatorRegistry.cjs +0 -0
  160. package/lib/validation/Validators/ValidatorRegistry.d.ts +0 -0
  161. package/lib/validation/Validators/constants.cjs +0 -0
  162. package/lib/validation/Validators/constants.d.ts +0 -0
  163. package/lib/validation/Validators/decorators.cjs +0 -0
  164. package/lib/validation/Validators/index.cjs +0 -0
  165. package/lib/validation/Validators/types.cjs +0 -0
  166. package/lib/validation/decorators.cjs +7 -7
  167. package/lib/validation/decorators.d.ts +0 -0
  168. package/lib/validation/index.cjs +0 -0
  169. package/lib/validation/index.d.ts +0 -0
  170. package/lib/validation/types.cjs +0 -0
  171. package/lib/validation/types.d.ts +0 -0
  172. package/package.json +1 -1
  173. package/lib/validation/Validators/decorators.d.ts +0 -12
  174. package/lib/validation/Validators/index.d.ts +0 -52
  175. package/lib/validation/Validators/types.d.ts +0 -51
@@ -8,7 +8,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  import { Validator } from "./Validator";
11
- import { ValidationKeys, DEFAULT_ERROR_MESSAGES } from "./constants";
11
+ import { DEFAULT_ERROR_MESSAGES, ValidationKeys } from "./constants";
12
12
  import { validator } from "./decorators";
13
13
  /**
14
14
  * @summary Max Validator
@@ -28,8 +28,7 @@ let MaxValidator = class MaxValidator extends Validator {
28
28
  * @summary Validates a Model
29
29
  *
30
30
  * @param {string} value
31
- * @param {number | Date | string} max
32
- * @param {string} [message]
31
+ * @param {MaxValidatorOptions} options
33
32
  *
34
33
  * @return {string | undefined}
35
34
  *
@@ -37,16 +36,17 @@ let MaxValidator = class MaxValidator extends Validator {
37
36
  *
38
37
  * @see Validator#hasErrors
39
38
  */
40
- hasErrors(value, max, message) {
39
+ hasErrors(value, options) {
41
40
  if (typeof value === "undefined")
42
41
  return;
42
+ let { max } = options;
43
43
  if (value instanceof Date && !(max instanceof Date)) {
44
44
  max = new Date(max);
45
45
  if (Number.isNaN(max.getDate()))
46
46
  throw new Error("Invalid Max param defined");
47
47
  }
48
48
  return value > max
49
- ? this.getMessage(message || this.message, max)
49
+ ? this.getMessage(options.message || this.message, max)
50
50
  : undefined;
51
51
  }
52
52
  };
@@ -55,5 +55,3 @@ MaxValidator = __decorate([
55
55
  __metadata("design:paramtypes", [String])
56
56
  ], MaxValidator);
57
57
  export { MaxValidator };
58
-
59
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvTWF4VmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpDOzs7Ozs7Ozs7R0FTRztBQUVJLElBQU0sWUFBWSxHQUFsQixNQUFNLFlBQWEsU0FBUSxTQUFTO0lBQ3pDLFlBQVksVUFBa0Isc0JBQXNCLENBQUMsR0FBRztRQUN0RCxLQUFLLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7T0FZRztJQUNJLFNBQVMsQ0FDZCxLQUE2QixFQUM3QixHQUEyQixFQUMzQixPQUFnQjtRQUVoQixJQUFJLE9BQU8sS0FBSyxLQUFLLFdBQVc7WUFBRSxPQUFPO1FBRXpDLElBQUksS0FBSyxZQUFZLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxZQUFZLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDcEQsR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BCLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBRUQsT0FBTyxLQUFLLEdBQUcsR0FBRztZQUNoQixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUM7WUFDL0MsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNoQixDQUFDO0NBQ0YsQ0FBQTtBQW5DWSxZQUFZO0lBRHhCLFNBQVMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDOztHQUNqQixZQUFZLENBbUN4QiIsImZpbGUiOiJ2YWxpZGF0aW9uL1ZhbGlkYXRvcnMvTWF4VmFsaWRhdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSBcIi4vVmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBWYWxpZGF0aW9uS2V5cywgREVGQVVMVF9FUlJPUl9NRVNTQUdFUyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgdmFsaWRhdG9yIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IE1heCBWYWxpZGF0b3JcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2VdIGRlZmF1bHRzIHRvIHtAbGluayBERUZBVUxUX0VSUk9SX01FU1NBR0VTI01BWH1cbiAqXG4gKiBAY2xhc3MgTWF4VmFsaWRhdG9yXG4gKiBAZXh0ZW5kcyBWYWxpZGF0b3JcbiAqXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdG9yc1xuICovXG5AdmFsaWRhdG9yKFZhbGlkYXRpb25LZXlzLk1BWClcbmV4cG9ydCBjbGFzcyBNYXhWYWxpZGF0b3IgZXh0ZW5kcyBWYWxpZGF0b3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcgPSBERUZBVUxUX0VSUk9SX01FU1NBR0VTLk1BWCkge1xuICAgIHN1cGVyKG1lc3NhZ2UsIFwibnVtYmVyXCIsIFwiRGF0ZVwiLCBcInN0cmluZ1wiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBWYWxpZGF0ZXMgYSBNb2RlbFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAgICogQHBhcmFtIHtudW1iZXIgfCBEYXRlIHwgc3RyaW5nfSBtYXhcbiAgICogQHBhcmFtIHtzdHJpbmd9IFttZXNzYWdlXVxuICAgKlxuICAgKiBAcmV0dXJuIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqXG4gICAqIEBvdmVycmlkZVxuICAgKlxuICAgKiBAc2VlIFZhbGlkYXRvciNoYXNFcnJvcnNcbiAgICovXG4gIHB1YmxpYyBoYXNFcnJvcnMoXG4gICAgdmFsdWU6IG51bWJlciB8IERhdGUgfCBzdHJpbmcsXG4gICAgbWF4OiBudW1iZXIgfCBEYXRlIHwgc3RyaW5nLFxuICAgIG1lc3NhZ2U/OiBzdHJpbmdcbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm47XG5cbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlICYmICEobWF4IGluc3RhbmNlb2YgRGF0ZSkpIHtcbiAgICAgIG1heCA9IG5ldyBEYXRlKG1heCk7XG4gICAgICBpZiAoTnVtYmVyLmlzTmFOKG1heC5nZXREYXRlKCkpKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIE1heCBwYXJhbSBkZWZpbmVkXCIpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZSA+IG1heFxuICAgICAgPyB0aGlzLmdldE1lc3NhZ2UobWVzc2FnZSB8fCB0aGlzLm1lc3NhZ2UsIG1heClcbiAgICAgIDogdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
@@ -1,4 +1,7 @@
1
- import { Validator } from "./Validator";
1
+ import { Validator, ValidatorOptions } from "./Validator";
2
+ export interface MinLengthValidatorOptions extends ValidatorOptions {
3
+ minLength: number;
4
+ }
2
5
  /**
3
6
  * @summary Minimum Length Validator
4
7
  * @description Validates strings and Arrays on their minimum length
@@ -10,13 +13,12 @@ import { Validator } from "./Validator";
10
13
  *
11
14
  * @category Validators
12
15
  */
13
- export declare class MinLengthValidator extends Validator {
16
+ export declare class MinLengthValidator extends Validator<MinLengthValidatorOptions> {
14
17
  constructor(message?: string);
15
18
  /**
16
19
  *
17
20
  * @param {string | Array} value
18
- * @param {number} minlength
19
- * @param {string} [message]
21
+ * @param {MinLengthValidatorOptions} options
20
22
  *
21
23
  * @return {string | undefined}
22
24
  *
@@ -25,5 +27,5 @@ export declare class MinLengthValidator extends Validator {
25
27
  *
26
28
  * @see Validator#hasErrors
27
29
  */
28
- hasErrors(value: string | any[], minlength: number, message?: string): string | undefined;
30
+ hasErrors(value: string | any[], options: MinLengthValidatorOptions): string | undefined;
29
31
  }
@@ -8,7 +8,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  import { Validator } from "./Validator";
11
- import { ValidationKeys, DEFAULT_ERROR_MESSAGES } from "./constants";
11
+ import { DEFAULT_ERROR_MESSAGES, ValidationKeys } from "./constants";
12
12
  import { validator } from "./decorators";
13
13
  /**
14
14
  * @summary Minimum Length Validator
@@ -28,8 +28,7 @@ let MinLengthValidator = class MinLengthValidator extends Validator {
28
28
  /**
29
29
  *
30
30
  * @param {string | Array} value
31
- * @param {number} minlength
32
- * @param {string} [message]
31
+ * @param {MinLengthValidatorOptions} options
33
32
  *
34
33
  * @return {string | undefined}
35
34
  *
@@ -38,11 +37,11 @@ let MinLengthValidator = class MinLengthValidator extends Validator {
38
37
  *
39
38
  * @see Validator#hasErrors
40
39
  */
41
- hasErrors(value, minlength, message) {
40
+ hasErrors(value, options) {
42
41
  if (typeof value === "undefined")
43
42
  return;
44
- return value.length < minlength
45
- ? this.getMessage(message || this.message, minlength)
43
+ return value.length < options.minLength
44
+ ? this.getMessage(options.message || this.message, options.minLength)
46
45
  : undefined;
47
46
  }
48
47
  };
@@ -51,5 +50,3 @@ MinLengthValidator = __decorate([
51
50
  __metadata("design:paramtypes", [String])
52
51
  ], MinLengthValidator);
53
52
  export { MinLengthValidator };
54
-
55
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvTWluTGVuZ3RoVmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpDOzs7Ozs7Ozs7O0dBVUc7QUFFSSxJQUFNLGtCQUFrQixHQUF4QixNQUFNLGtCQUFtQixTQUFRLFNBQVM7SUFDL0MsWUFBWSxVQUFrQixzQkFBc0IsQ0FBQyxVQUFVO1FBQzdELEtBQUssQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7T0FZRztJQUNJLFNBQVMsQ0FDZCxLQUFxQixFQUNyQixTQUFpQixFQUNqQixPQUFnQjtRQUVoQixJQUFJLE9BQU8sS0FBSyxLQUFLLFdBQVc7WUFBRSxPQUFPO1FBQ3pDLE9BQU8sS0FBSyxDQUFDLE1BQU0sR0FBRyxTQUFTO1lBQzdCLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQztZQUNyRCxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2hCLENBQUM7Q0FDRixDQUFBO0FBNUJZLGtCQUFrQjtJQUQ5QixTQUFTLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQzs7R0FDeEIsa0JBQWtCLENBNEI5QiIsImZpbGUiOiJ2YWxpZGF0aW9uL1ZhbGlkYXRvcnMvTWluTGVuZ3RoVmFsaWRhdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSBcIi4vVmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBWYWxpZGF0aW9uS2V5cywgREVGQVVMVF9FUlJPUl9NRVNTQUdFUyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgdmFsaWRhdG9yIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IE1pbmltdW0gTGVuZ3RoIFZhbGlkYXRvclxuICogQGRlc2NyaXB0aW9uIFZhbGlkYXRlcyBzdHJpbmdzIGFuZCBBcnJheXMgb24gdGhlaXIgbWluaW11bSBsZW5ndGhcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2VdIGRlZmF1bHRzIHRvIHtAbGluayBERUZBVUxUX0VSUk9SX01FU1NBR0VTI01JTl9MRU5HVEh9XG4gKlxuICogQGNsYXNzIE1pbkxlbmd0aFZhbGlkYXRvclxuICogQGV4dGVuZHMgVmFsaWRhdG9yXG4gKlxuICogQGNhdGVnb3J5IFZhbGlkYXRvcnNcbiAqL1xuQHZhbGlkYXRvcihWYWxpZGF0aW9uS2V5cy5NSU5fTEVOR1RIKVxuZXhwb3J0IGNsYXNzIE1pbkxlbmd0aFZhbGlkYXRvciBleHRlbmRzIFZhbGlkYXRvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZyA9IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuTUlOX0xFTkdUSCkge1xuICAgIHN1cGVyKG1lc3NhZ2UsIFN0cmluZy5uYW1lLCBBcnJheS5uYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IEFycmF5fSB2YWx1ZVxuICAgKiBAcGFyYW0ge251bWJlcn0gbWlubGVuZ3RoXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZV1cbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKlxuICAgKiBAbWVtYmVyT2YgTWluTGVuZ3RoVmFsaWRhdG9yXG4gICAqIEBvdmVycmlkZVxuICAgKlxuICAgKiBAc2VlIFZhbGlkYXRvciNoYXNFcnJvcnNcbiAgICovXG4gIHB1YmxpYyBoYXNFcnJvcnMoXG4gICAgdmFsdWU6IHN0cmluZyB8IGFueVtdLFxuICAgIG1pbmxlbmd0aDogbnVtYmVyLFxuICAgIG1lc3NhZ2U/OiBzdHJpbmdcbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm47XG4gICAgcmV0dXJuIHZhbHVlLmxlbmd0aCA8IG1pbmxlbmd0aFxuICAgICAgPyB0aGlzLmdldE1lc3NhZ2UobWVzc2FnZSB8fCB0aGlzLm1lc3NhZ2UsIG1pbmxlbmd0aClcbiAgICAgIDogdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
@@ -1,4 +1,7 @@
1
- import { Validator } from "./Validator";
1
+ import { Validator, ValidatorOptions } from "./Validator";
2
+ export interface MinValidatorOptions extends ValidatorOptions {
3
+ min: number | Date | string;
4
+ }
2
5
  /**
3
6
  * @summary Min Validator
4
7
  *
@@ -9,14 +12,13 @@ import { Validator } from "./Validator";
9
12
  *
10
13
  * @category Validators
11
14
  */
12
- export declare class MinValidator extends Validator {
15
+ export declare class MinValidator extends Validator<MinValidatorOptions> {
13
16
  constructor(message?: string);
14
17
  /**
15
18
  * @summary Validates Model
16
19
  *
17
20
  * @param {string} value
18
- * @param {number | Date | string} min
19
- * @param {string} [message]
21
+ * @param {MaxValidatorOptions} options
20
22
  *
21
23
  * @return {string | undefined}
22
24
  *
@@ -24,5 +26,5 @@ export declare class MinValidator extends Validator {
24
26
  *
25
27
  * @see Validator#hasErrors
26
28
  */
27
- hasErrors(value: number | Date | string, min: number | Date | string, message?: string): string | undefined;
29
+ hasErrors(value: number | Date | string, options: MinValidatorOptions): string | undefined;
28
30
  }
@@ -8,7 +8,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  import { Validator } from "./Validator";
11
- import { ValidationKeys, DEFAULT_ERROR_MESSAGES } from "./constants";
11
+ import { DEFAULT_ERROR_MESSAGES, ValidationKeys } from "./constants";
12
12
  import { validator } from "./decorators";
13
13
  /**
14
14
  * @summary Min Validator
@@ -28,8 +28,7 @@ let MinValidator = class MinValidator extends Validator {
28
28
  * @summary Validates Model
29
29
  *
30
30
  * @param {string} value
31
- * @param {number | Date | string} min
32
- * @param {string} [message]
31
+ * @param {MaxValidatorOptions} options
33
32
  *
34
33
  * @return {string | undefined}
35
34
  *
@@ -37,16 +36,17 @@ let MinValidator = class MinValidator extends Validator {
37
36
  *
38
37
  * @see Validator#hasErrors
39
38
  */
40
- hasErrors(value, min, message) {
39
+ hasErrors(value, options) {
41
40
  if (typeof value === "undefined")
42
41
  return;
42
+ let { min } = options;
43
43
  if (value instanceof Date && !(min instanceof Date)) {
44
44
  min = new Date(min);
45
45
  if (Number.isNaN(min.getDate()))
46
46
  throw new Error("Invalid Min param defined");
47
47
  }
48
48
  return value < min
49
- ? this.getMessage(message || this.message, min)
49
+ ? this.getMessage(options.message || this.message, min)
50
50
  : undefined;
51
51
  }
52
52
  };
@@ -55,5 +55,3 @@ MinValidator = __decorate([
55
55
  __metadata("design:paramtypes", [String])
56
56
  ], MinValidator);
57
57
  export { MinValidator };
58
-
59
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvTWluVmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpDOzs7Ozs7Ozs7R0FTRztBQUVJLElBQU0sWUFBWSxHQUFsQixNQUFNLFlBQWEsU0FBUSxTQUFTO0lBQ3pDLFlBQVksVUFBa0Isc0JBQXNCLENBQUMsR0FBRztRQUN0RCxLQUFLLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7T0FZRztJQUNJLFNBQVMsQ0FDZCxLQUE2QixFQUM3QixHQUEyQixFQUMzQixPQUFnQjtRQUVoQixJQUFJLE9BQU8sS0FBSyxLQUFLLFdBQVc7WUFBRSxPQUFPO1FBRXpDLElBQUksS0FBSyxZQUFZLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxZQUFZLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDcEQsR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BCLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBQ0QsT0FBTyxLQUFLLEdBQUcsR0FBRztZQUNoQixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUM7WUFDL0MsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNoQixDQUFDO0NBQ0YsQ0FBQTtBQWxDWSxZQUFZO0lBRHhCLFNBQVMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDOztHQUNqQixZQUFZLENBa0N4QiIsImZpbGUiOiJ2YWxpZGF0aW9uL1ZhbGlkYXRvcnMvTWluVmFsaWRhdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSBcIi4vVmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBWYWxpZGF0aW9uS2V5cywgREVGQVVMVF9FUlJPUl9NRVNTQUdFUyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgdmFsaWRhdG9yIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IE1pbiBWYWxpZGF0b3JcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2VdIGRlZmF1bHRzIHRvIHtAbGluayBERUZBVUxUX0VSUk9SX01FU1NBR0VTI01JTn1cbiAqXG4gKiBAY2xhc3MgTWluVmFsaWRhdG9yXG4gKiBAZXh0ZW5kcyBWYWxpZGF0b3JcbiAqXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdG9yc1xuICovXG5AdmFsaWRhdG9yKFZhbGlkYXRpb25LZXlzLk1JTilcbmV4cG9ydCBjbGFzcyBNaW5WYWxpZGF0b3IgZXh0ZW5kcyBWYWxpZGF0b3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcgPSBERUZBVUxUX0VSUk9SX01FU1NBR0VTLk1JTikge1xuICAgIHN1cGVyKG1lc3NhZ2UsIFwibnVtYmVyXCIsIFwiRGF0ZVwiLCBcInN0cmluZ1wiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBWYWxpZGF0ZXMgTW9kZWxcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gICAqIEBwYXJhbSB7bnVtYmVyIHwgRGF0ZSB8IHN0cmluZ30gbWluXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZV1cbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKlxuICAgKiBAb3ZlcnJpZGVcbiAgICpcbiAgICogQHNlZSBWYWxpZGF0b3IjaGFzRXJyb3JzXG4gICAqL1xuICBwdWJsaWMgaGFzRXJyb3JzKFxuICAgIHZhbHVlOiBudW1iZXIgfCBEYXRlIHwgc3RyaW5nLFxuICAgIG1pbjogbnVtYmVyIHwgRGF0ZSB8IHN0cmluZyxcbiAgICBtZXNzYWdlPzogc3RyaW5nXG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuO1xuXG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSAmJiAhKG1pbiBpbnN0YW5jZW9mIERhdGUpKSB7XG4gICAgICBtaW4gPSBuZXcgRGF0ZShtaW4pO1xuICAgICAgaWYgKE51bWJlci5pc05hTihtaW4uZ2V0RGF0ZSgpKSlcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBNaW4gcGFyYW0gZGVmaW5lZFwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlIDwgbWluXG4gICAgICA/IHRoaXMuZ2V0TWVzc2FnZShtZXNzYWdlIHx8IHRoaXMubWVzc2FnZSwgbWluKVxuICAgICAgOiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { PatternValidator } from "./PatternValidator";
1
+ import { PatternValidator, PatternValidatorOptions } from "./PatternValidator";
2
2
  /**
3
3
  * @summary Handles Password Validation
4
4
  *
@@ -15,8 +15,7 @@ export declare class PasswordValidator extends PatternValidator {
15
15
  * @summary Validates a model
16
16
  *
17
17
  * @param {string} value
18
- * @param {RegExp} [pattern]
19
- * @param {string} [message]
18
+ * @param {PatternValidatorOptions} [options={}]
20
19
  *
21
20
  * @return {string | undefined}
22
21
  *
@@ -24,5 +23,5 @@ export declare class PasswordValidator extends PatternValidator {
24
23
  *
25
24
  * @see PatternValidator#hasErrors
26
25
  */
27
- hasErrors(value: string, pattern?: RegExp, message?: string): string | undefined;
26
+ hasErrors(value: string, options?: PatternValidatorOptions): string | undefined;
28
27
  }
@@ -28,8 +28,7 @@ let PasswordValidator = class PasswordValidator extends PatternValidator {
28
28
  * @summary Validates a model
29
29
  *
30
30
  * @param {string} value
31
- * @param {RegExp} [pattern]
32
- * @param {string} [message]
31
+ * @param {PatternValidatorOptions} [options={}]
33
32
  *
34
33
  * @return {string | undefined}
35
34
  *
@@ -37,8 +36,11 @@ let PasswordValidator = class PasswordValidator extends PatternValidator {
37
36
  *
38
37
  * @see PatternValidator#hasErrors
39
38
  */
40
- hasErrors(value, pattern, message) {
41
- return super.hasErrors(value, pattern || DEFAULT_ERROR_MESSAGES.PASSWORD, message || this.message);
39
+ hasErrors(value, options = {}) {
40
+ return super.hasErrors(value, {
41
+ ...options,
42
+ message: options.message || this.message,
43
+ });
42
44
  }
43
45
  };
44
46
  PasswordValidator = __decorate([
@@ -46,5 +48,3 @@ PasswordValidator = __decorate([
46
48
  __metadata("design:paramtypes", [Object])
47
49
  ], PasswordValidator);
48
50
  export { PasswordValidator };
49
-
50
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvUGFzc3dvcmRWYWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpDOzs7Ozs7Ozs7R0FTRztBQUVJLElBQU0saUJBQWlCLEdBQXZCLE1BQU0saUJBQWtCLFNBQVEsZ0JBQWdCO0lBQ3JELFlBQVksT0FBTyxHQUFHLHNCQUFzQixDQUFDLFFBQVE7UUFDbkQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSSxTQUFTLENBQ2QsS0FBYSxFQUNiLE9BQWdCLEVBQ2hCLE9BQWdCO1FBRWhCLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FDcEIsS0FBSyxFQUNMLE9BQU8sSUFBSSxzQkFBc0IsQ0FBQyxRQUFRLEVBQzFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUN4QixDQUFDO0lBQ0osQ0FBQztDQUNGLENBQUE7QUE3QlksaUJBQWlCO0lBRDdCLFNBQVMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDOztHQUN0QixpQkFBaUIsQ0E2QjdCIiwiZmlsZSI6InZhbGlkYXRpb24vVmFsaWRhdG9ycy9QYXNzd29yZFZhbGlkYXRvci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhdHRlcm5WYWxpZGF0b3IgfSBmcm9tIFwiLi9QYXR0ZXJuVmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBERUZBVUxUX0VSUk9SX01FU1NBR0VTLCBWYWxpZGF0aW9uS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgdmFsaWRhdG9yIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IEhhbmRsZXMgUGFzc3dvcmQgVmFsaWRhdGlvblxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbZXJyb3JNZXNzYWdlXSBkZWZhdWx0cyB0byB7QGxpbmsgREVGQVVMVF9FUlJPUl9NRVNTQUdFUyNQQVNTV09SRH1cbiAqXG4gKiBAY2xhc3MgUGFzc3dvcmRWYWxpZGF0b3JcbiAqIEBleHRlbmRzIFBhdHRlcm5WYWxpZGF0b3JcbiAqXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdG9yc1xuICovXG5AdmFsaWRhdG9yKFZhbGlkYXRpb25LZXlzLlBBU1NXT1JEKVxuZXhwb3J0IGNsYXNzIFBhc3N3b3JkVmFsaWRhdG9yIGV4dGVuZHMgUGF0dGVyblZhbGlkYXRvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2UgPSBERUZBVUxUX0VSUk9SX01FU1NBR0VTLlBBU1NXT1JEKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgVmFsaWRhdGVzIGEgbW9kZWxcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gICAqIEBwYXJhbSB7UmVnRXhwfSBbcGF0dGVybl1cbiAgICogQHBhcmFtIHtzdHJpbmd9IFttZXNzYWdlXVxuICAgKlxuICAgKiBAcmV0dXJuIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqXG4gICAqIEBvdmVycmlkZVxuICAgKlxuICAgKiBAc2VlIFBhdHRlcm5WYWxpZGF0b3IjaGFzRXJyb3JzXG4gICAqL1xuICBwdWJsaWMgaGFzRXJyb3JzKFxuICAgIHZhbHVlOiBzdHJpbmcsXG4gICAgcGF0dGVybj86IFJlZ0V4cCxcbiAgICBtZXNzYWdlPzogc3RyaW5nXG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHN1cGVyLmhhc0Vycm9ycyhcbiAgICAgIHZhbHVlLFxuICAgICAgcGF0dGVybiB8fCBERUZBVUxUX0VSUk9SX01FU1NBR0VTLlBBU1NXT1JELFxuICAgICAgbWVzc2FnZSB8fCB0aGlzLm1lc3NhZ2VcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -1,4 +1,7 @@
1
- import { Validator } from "./Validator";
1
+ import { Validator, ValidatorOptions } from "./Validator";
2
+ export interface PatternValidatorOptions extends ValidatorOptions {
3
+ pattern?: RegExp | string;
4
+ }
2
5
  export declare const regexpParser: RegExp;
3
6
  /**
4
7
  * @summary Pattern Validator
@@ -11,7 +14,7 @@ export declare const regexpParser: RegExp;
11
14
  *
12
15
  * @category Validators
13
16
  */
14
- export declare class PatternValidator extends Validator {
17
+ export declare class PatternValidator extends Validator<PatternValidatorOptions> {
15
18
  constructor(message?: string);
16
19
  /**
17
20
  * @summary parses and validates a pattern
@@ -24,8 +27,7 @@ export declare class PatternValidator extends Validator {
24
27
  * @summary Validates a Model
25
28
  *
26
29
  * @param {string} value
27
- * @param {RegExp | string} pattern
28
- * @param {string} [message]
30
+ * @param {PatternValidatorOptions} options
29
31
  *
30
32
  * @return {string | undefined}
31
33
  *
@@ -33,5 +35,5 @@ export declare class PatternValidator extends Validator {
33
35
  *
34
36
  * @see Validator#hasErrors
35
37
  */
36
- hasErrors(value: string, pattern?: RegExp | string, message?: string): string | undefined;
38
+ hasErrors(value: string, options: PatternValidatorOptions): string | undefined;
37
39
  }
@@ -8,7 +8,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  import { Validator } from "./Validator";
11
- import { ValidationKeys, DEFAULT_ERROR_MESSAGES } from "./constants";
11
+ import { DEFAULT_ERROR_MESSAGES, ValidationKeys } from "./constants";
12
12
  import { validator } from "./decorators";
13
13
  export const regexpParser = new RegExp("^/(.+)/([gimus]*)$");
14
14
  /**
@@ -42,8 +42,7 @@ let PatternValidator = class PatternValidator extends Validator {
42
42
  * @summary Validates a Model
43
43
  *
44
44
  * @param {string} value
45
- * @param {RegExp | string} pattern
46
- * @param {string} [message]
45
+ * @param {PatternValidatorOptions} options
47
46
  *
48
47
  * @return {string | undefined}
49
48
  *
@@ -51,15 +50,16 @@ let PatternValidator = class PatternValidator extends Validator {
51
50
  *
52
51
  * @see Validator#hasErrors
53
52
  */
54
- hasErrors(value, pattern, message) {
53
+ hasErrors(value, options) {
55
54
  if (!value)
56
55
  return;
56
+ let { pattern } = options;
57
57
  if (!pattern)
58
58
  throw new Error("Missing Pattern");
59
59
  pattern = typeof pattern === "string" ? this.getPattern(pattern) : pattern;
60
60
  pattern.lastIndex = 0; // resets pattern position for repeat validation requests
61
61
  return !pattern.test(value)
62
- ? this.getMessage(message || this.message)
62
+ ? this.getMessage(options.message || this.message)
63
63
  : undefined;
64
64
  }
65
65
  };
@@ -68,5 +68,3 @@ PatternValidator = __decorate([
68
68
  __metadata("design:paramtypes", [String])
69
69
  ], PatternValidator);
70
70
  export { PatternValidator };
71
-
72
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvUGF0dGVyblZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxjQUFjLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV6QyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQVcsSUFBSSxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQUVyRTs7Ozs7Ozs7OztHQVVHO0FBRUksSUFBTSxnQkFBZ0IsR0FBdEIsTUFBTSxnQkFBaUIsU0FBUSxTQUFTO0lBQzdDLFlBQVksVUFBa0Isc0JBQXNCLENBQUMsT0FBTztRQUMxRCxLQUFLLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLFVBQVUsQ0FBQyxPQUFlO1FBQ2hDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUFFLE9BQU8sSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUQsTUFBTSxLQUFLLEdBQVEsT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMvQyxPQUFPLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0ksU0FBUyxDQUNkLEtBQWEsRUFDYixPQUF5QixFQUN6QixPQUFnQjtRQUVoQixJQUFJLENBQUMsS0FBSztZQUFFLE9BQU87UUFDbkIsSUFBSSxDQUFDLE9BQU87WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDakQsT0FBTyxHQUFHLE9BQU8sT0FBTyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQzNFLE9BQU8sQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMseURBQXlEO1FBQ2hGLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUN6QixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUMxQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2hCLENBQUM7Q0FDRixDQUFBO0FBM0NZLGdCQUFnQjtJQUQ1QixTQUFTLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQzs7R0FDckIsZ0JBQWdCLENBMkM1QiIsImZpbGUiOiJ2YWxpZGF0aW9uL1ZhbGlkYXRvcnMvUGF0dGVyblZhbGlkYXRvci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbGlkYXRvciB9IGZyb20gXCIuL1ZhbGlkYXRvclwiO1xuaW1wb3J0IHsgVmFsaWRhdGlvbktleXMsIERFRkFVTFRfRVJST1JfTUVTU0FHRVMgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IHZhbGlkYXRvciB9IGZyb20gXCIuL2RlY29yYXRvcnNcIjtcblxuZXhwb3J0IGNvbnN0IHJlZ2V4cFBhcnNlcjogUmVnRXhwID0gbmV3IFJlZ0V4cChcIl4vKC4rKS8oW2dpbXVzXSopJFwiKTtcblxuLyoqXG4gKiBAc3VtbWFyeSBQYXR0ZXJuIFZhbGlkYXRvclxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBba2V5XSBkZWZhdWx0cyB0byB7QGxpbmsgVmFsaWRhdGlvbktleXMjUEFUVEVSTn1cbiAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZV0gZGVmYXVsdHMgdG8ge0BsaW5rIERFRkFVTFRfRVJST1JfTUVTU0FHRVMjUEFUVEVSTn1cbiAqXG4gKiBAY2xhc3MgUGF0dGVyblZhbGlkYXRvclxuICogQGV4dGVuZHMgVmFsaWRhdG9yXG4gKlxuICogQGNhdGVnb3J5IFZhbGlkYXRvcnNcbiAqL1xuQHZhbGlkYXRvcihWYWxpZGF0aW9uS2V5cy5QQVRURVJOKVxuZXhwb3J0IGNsYXNzIFBhdHRlcm5WYWxpZGF0b3IgZXh0ZW5kcyBWYWxpZGF0b3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcgPSBERUZBVUxUX0VSUk9SX01FU1NBR0VTLlBBVFRFUk4pIHtcbiAgICBzdXBlcihtZXNzYWdlLCBcInN0cmluZ1wiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBwYXJzZXMgYW5kIHZhbGlkYXRlcyBhIHBhdHRlcm5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhdHRlcm5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgZ2V0UGF0dGVybihwYXR0ZXJuOiBzdHJpbmcpOiBSZWdFeHAge1xuICAgIGlmICghcmVnZXhwUGFyc2VyLnRlc3QocGF0dGVybikpIHJldHVybiBuZXcgUmVnRXhwKHBhdHRlcm4pO1xuICAgIGNvbnN0IG1hdGNoOiBhbnkgPSBwYXR0ZXJuLm1hdGNoKHJlZ2V4cFBhcnNlcik7XG4gICAgcmV0dXJuIG5ldyBSZWdFeHAobWF0Y2hbMV0sIG1hdGNoWzJdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBWYWxpZGF0ZXMgYSBNb2RlbFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAgICogQHBhcmFtIHtSZWdFeHAgfCBzdHJpbmd9IHBhdHRlcm5cbiAgICogQHBhcmFtIHtzdHJpbmd9IFttZXNzYWdlXVxuICAgKlxuICAgKiBAcmV0dXJuIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqXG4gICAqIEBvdmVycmlkZVxuICAgKlxuICAgKiBAc2VlIFZhbGlkYXRvciNoYXNFcnJvcnNcbiAgICovXG4gIHB1YmxpYyBoYXNFcnJvcnMoXG4gICAgdmFsdWU6IHN0cmluZyxcbiAgICBwYXR0ZXJuPzogUmVnRXhwIHwgc3RyaW5nLFxuICAgIG1lc3NhZ2U/OiBzdHJpbmcsXG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuICAgIGlmICghcGF0dGVybikgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyBQYXR0ZXJuXCIpO1xuICAgIHBhdHRlcm4gPSB0eXBlb2YgcGF0dGVybiA9PT0gXCJzdHJpbmdcIiA/IHRoaXMuZ2V0UGF0dGVybihwYXR0ZXJuKSA6IHBhdHRlcm47XG4gICAgcGF0dGVybi5sYXN0SW5kZXggPSAwOyAvLyByZXNldHMgcGF0dGVybiBwb3NpdGlvbiBmb3IgcmVwZWF0IHZhbGlkYXRpb24gcmVxdWVzdHNcbiAgICByZXR1cm4gIXBhdHRlcm4udGVzdCh2YWx1ZSlcbiAgICAgID8gdGhpcy5nZXRNZXNzYWdlKG1lc3NhZ2UgfHwgdGhpcy5tZXNzYWdlKVxuICAgICAgOiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { Validator } from "./Validator";
1
+ import { Validator, ValidatorOptions } from "./Validator";
2
2
  /**
3
3
  * @summary Required Validator
4
4
  *
@@ -15,7 +15,7 @@ export declare class RequiredValidator extends Validator {
15
15
  * @summary Validates a model
16
16
  *
17
17
  * @param {string} value
18
- * @param {string} [message]
18
+ * @param {ValidatorOptions} [options={}]
19
19
  *
20
20
  * @return {string | undefined}
21
21
  *
@@ -23,5 +23,5 @@ export declare class RequiredValidator extends Validator {
23
23
  *
24
24
  * @see Validator#hasErrors
25
25
  */
26
- hasErrors(value: any, message?: string): string | undefined;
26
+ hasErrors(value: any, options?: ValidatorOptions): string | undefined;
27
27
  }
@@ -8,7 +8,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  import { Validator } from "./Validator";
11
- import { ValidationKeys, DEFAULT_ERROR_MESSAGES } from "./constants";
11
+ import { DEFAULT_ERROR_MESSAGES, ValidationKeys } from "./constants";
12
12
  import { validator } from "./decorators";
13
13
  /**
14
14
  * @summary Required Validator
@@ -28,7 +28,7 @@ let RequiredValidator = class RequiredValidator extends Validator {
28
28
  * @summary Validates a model
29
29
  *
30
30
  * @param {string} value
31
- * @param {string} [message]
31
+ * @param {ValidatorOptions} [options={}]
32
32
  *
33
33
  * @return {string | undefined}
34
34
  *
@@ -36,15 +36,17 @@ let RequiredValidator = class RequiredValidator extends Validator {
36
36
  *
37
37
  * @see Validator#hasErrors
38
38
  */
39
- hasErrors(value, message) {
39
+ hasErrors(value, options = {}) {
40
40
  switch (typeof value) {
41
41
  case "boolean":
42
42
  case "number":
43
43
  return typeof value === "undefined"
44
- ? this.getMessage(message || this.message)
44
+ ? this.getMessage(options.message || this.message)
45
45
  : undefined;
46
46
  default:
47
- return !value ? this.getMessage(message || this.message) : undefined;
47
+ return !value
48
+ ? this.getMessage(options.message || this.message)
49
+ : undefined;
48
50
  }
49
51
  }
50
52
  };
@@ -53,5 +55,3 @@ RequiredValidator = __decorate([
53
55
  __metadata("design:paramtypes", [String])
54
56
  ], RequiredValidator);
55
57
  export { RequiredValidator };
56
-
57
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvUmVxdWlyZWRWYWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsY0FBYyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFekM7Ozs7Ozs7OztHQVNHO0FBRUksSUFBTSxpQkFBaUIsR0FBdkIsTUFBTSxpQkFBa0IsU0FBUSxTQUFTO0lBQzlDLFlBQVksVUFBa0Isc0JBQXNCLENBQUMsUUFBUTtRQUMzRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0ksU0FBUyxDQUFDLEtBQVUsRUFBRSxPQUFnQjtRQUMzQyxRQUFRLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDckIsS0FBSyxTQUFTLENBQUM7WUFDZixLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxPQUFPLEtBQUssS0FBSyxXQUFXO29CQUNqQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQztvQkFDMUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNoQjtnQkFDRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUN6RSxDQUFDO0lBQ0gsQ0FBQztDQUNGLENBQUE7QUE1QlksaUJBQWlCO0lBRDdCLFNBQVMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDOztHQUN0QixpQkFBaUIsQ0E0QjdCIiwiZmlsZSI6InZhbGlkYXRpb24vVmFsaWRhdG9ycy9SZXF1aXJlZFZhbGlkYXRvci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbGlkYXRvciB9IGZyb20gXCIuL1ZhbGlkYXRvclwiO1xuaW1wb3J0IHsgVmFsaWRhdGlvbktleXMsIERFRkFVTFRfRVJST1JfTUVTU0FHRVMgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IHZhbGlkYXRvciB9IGZyb20gXCIuL2RlY29yYXRvcnNcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBSZXF1aXJlZCBWYWxpZGF0b3JcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2VdIGRlZmF1bHRzIHRvIHtAbGluayBERUZBVUxUX0VSUk9SX01FU1NBR0VTI1JFUVVJUkVEfVxuICpcbiAqIEBjbGFzcyBSZXF1aXJlZFZhbGlkYXRvclxuICogQGV4dGVuZHMgVmFsaWRhdG9yXG4gKlxuICogQGNhdGVnb3J5IFZhbGlkYXRvcnNcbiAqL1xuQHZhbGlkYXRvcihWYWxpZGF0aW9uS2V5cy5SRVFVSVJFRClcbmV4cG9ydCBjbGFzcyBSZXF1aXJlZFZhbGlkYXRvciBleHRlbmRzIFZhbGlkYXRvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZyA9IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuUkVRVUlSRUQpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBWYWxpZGF0ZXMgYSBtb2RlbFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAgICogQHBhcmFtIHtzdHJpbmd9IFttZXNzYWdlXVxuICAgKlxuICAgKiBAcmV0dXJuIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqXG4gICAqIEBvdmVycmlkZVxuICAgKlxuICAgKiBAc2VlIFZhbGlkYXRvciNoYXNFcnJvcnNcbiAgICovXG4gIHB1YmxpYyBoYXNFcnJvcnModmFsdWU6IGFueSwgbWVzc2FnZT86IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHtcbiAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICBjYXNlIFwibnVtYmVyXCI6XG4gICAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwidW5kZWZpbmVkXCJcbiAgICAgICAgICA/IHRoaXMuZ2V0TWVzc2FnZShtZXNzYWdlIHx8IHRoaXMubWVzc2FnZSlcbiAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAhdmFsdWUgPyB0aGlzLmdldE1lc3NhZ2UobWVzc2FnZSB8fCB0aGlzLm1lc3NhZ2UpIDogdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,4 +1,7 @@
1
- import { Validator } from "./Validator";
1
+ import { Validator, ValidatorOptions } from "./Validator";
2
+ export interface StepValidatorOptions extends ValidatorOptions {
3
+ step: number | string;
4
+ }
2
5
  /**
3
6
  * @summary Step Validator
4
7
  *
@@ -9,14 +12,14 @@ import { Validator } from "./Validator";
9
12
  *
10
13
  * @category Validators
11
14
  */
12
- export declare class StepValidator extends Validator {
15
+ export declare class StepValidator extends Validator<StepValidatorOptions> {
13
16
  constructor(message?: string);
14
17
  /**
15
18
  * @summary Validates a model
16
19
  *
17
20
  * @param {string} value
18
21
  * @param {number} step
19
- * @param {string} [message]
22
+ * @param {StepValidatorOptions} options
20
23
  *
21
24
  * @return {string | undefined}
22
25
  *
@@ -24,5 +27,5 @@ export declare class StepValidator extends Validator {
24
27
  *
25
28
  * @see Validator#hasErrors
26
29
  */
27
- hasErrors(value: number | string, step: number | string, message?: string): string | undefined;
30
+ hasErrors(value: number | string, options: StepValidatorOptions): string | undefined;
28
31
  }
@@ -8,7 +8,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  import { Validator } from "./Validator";
11
- import { ValidationKeys, DEFAULT_ERROR_MESSAGES } from "./constants";
11
+ import { DEFAULT_ERROR_MESSAGES, ValidationKeys } from "./constants";
12
12
  import { validator } from "./decorators";
13
13
  /**
14
14
  * @summary Step Validator
@@ -29,7 +29,7 @@ let StepValidator = class StepValidator extends Validator {
29
29
  *
30
30
  * @param {string} value
31
31
  * @param {number} step
32
- * @param {string} [message]
32
+ * @param {StepValidatorOptions} options
33
33
  *
34
34
  * @return {string | undefined}
35
35
  *
@@ -37,11 +37,11 @@ let StepValidator = class StepValidator extends Validator {
37
37
  *
38
38
  * @see Validator#hasErrors
39
39
  */
40
- hasErrors(value, step, message) {
40
+ hasErrors(value, options) {
41
41
  if (typeof value === "undefined")
42
42
  return;
43
- return Number(value) % Number(step) !== 0
44
- ? this.getMessage(message || this.message, step)
43
+ return Number(value) % Number(options.step) !== 0
44
+ ? this.getMessage(options.message || this.message, options.step)
45
45
  : undefined;
46
46
  }
47
47
  };
@@ -50,5 +50,3 @@ StepValidator = __decorate([
50
50
  __metadata("design:paramtypes", [String])
51
51
  ], StepValidator);
52
52
  export { StepValidator };
53
-
54
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvU3RlcFZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxjQUFjLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV6Qzs7Ozs7Ozs7O0dBU0c7QUFFSSxJQUFNLGFBQWEsR0FBbkIsTUFBTSxhQUFjLFNBQVEsU0FBUztJQUMxQyxZQUFZLFVBQWtCLHNCQUFzQixDQUFDLElBQUk7UUFDdkQsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7T0FZRztJQUNJLFNBQVMsQ0FDZCxLQUFzQixFQUN0QixJQUFxQixFQUNyQixPQUFnQjtRQUVoQixJQUFJLE9BQU8sS0FBSyxLQUFLLFdBQVc7WUFBRSxPQUFPO1FBQ3pDLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ3ZDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQztZQUNoRCxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2hCLENBQUM7Q0FDRixDQUFBO0FBNUJZLGFBQWE7SUFEekIsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7O0dBQ2xCLGFBQWEsQ0E0QnpCIiwiZmlsZSI6InZhbGlkYXRpb24vVmFsaWRhdG9ycy9TdGVwVmFsaWRhdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSBcIi4vVmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBWYWxpZGF0aW9uS2V5cywgREVGQVVMVF9FUlJPUl9NRVNTQUdFUyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgdmFsaWRhdG9yIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IFN0ZXAgVmFsaWRhdG9yXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IFttZXNzYWdlXSBkZWZhdWx0cyB0byB7QGxpbmsgREVGQVVMVF9FUlJPUl9NRVNTQUdFUyNTVEVQfVxuICpcbiAqIEBjbGFzcyBTdGVwVmFsaWRhdG9yXG4gKiBAZXh0ZW5kcyBWYWxpZGF0b3JcbiAqXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdG9yc1xuICovXG5AdmFsaWRhdG9yKFZhbGlkYXRpb25LZXlzLlNURVApXG5leHBvcnQgY2xhc3MgU3RlcFZhbGlkYXRvciBleHRlbmRzIFZhbGlkYXRvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZyA9IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuU1RFUCkge1xuICAgIHN1cGVyKG1lc3NhZ2UsIFwibnVtYmVyXCIsIFwic3RyaW5nXCIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFZhbGlkYXRlcyBhIG1vZGVsXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICAgKiBAcGFyYW0ge251bWJlcn0gc3RlcFxuICAgKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2VdXG4gICAqXG4gICAqIEByZXR1cm4ge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICpcbiAgICogQG92ZXJyaWRlXG4gICAqXG4gICAqIEBzZWUgVmFsaWRhdG9yI2hhc0Vycm9yc1xuICAgKi9cbiAgcHVibGljIGhhc0Vycm9ycyhcbiAgICB2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLFxuICAgIHN0ZXA6IG51bWJlciB8IHN0cmluZyxcbiAgICBtZXNzYWdlPzogc3RyaW5nXG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuO1xuICAgIHJldHVybiBOdW1iZXIodmFsdWUpICUgTnVtYmVyKHN0ZXApICE9PSAwXG4gICAgICA/IHRoaXMuZ2V0TWVzc2FnZShtZXNzYWdlIHx8IHRoaXMubWVzc2FnZSwgc3RlcClcbiAgICAgIDogdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
@@ -1,4 +1,9 @@
1
- import { Validator } from "./Validator";
1
+ import { Validator, ValidatorOptions } from "./Validator";
2
+ export interface TypeValidatorOptions extends ValidatorOptions {
3
+ types: string | string[] | {
4
+ name: string;
5
+ };
6
+ }
2
7
  /**
3
8
  * @summary Required Validator
4
9
  *
@@ -7,13 +12,12 @@ import { Validator } from "./Validator";
7
12
  *
8
13
  * @category Validators
9
14
  */
10
- export declare class TypeValidator extends Validator {
15
+ export declare class TypeValidator extends Validator<TypeValidatorOptions> {
11
16
  constructor(message?: string);
12
17
  /**
13
18
  * @summary Validates a model
14
19
  * @param {string} value
15
- * @param {string | string[] | {name: string}} types
16
- * @param {string} [message]
20
+ * @param {TypeValidatorOptions} options
17
21
  *
18
22
  * @return {string | undefined}
19
23
  *
@@ -21,7 +25,5 @@ export declare class TypeValidator extends Validator {
21
25
  *
22
26
  * @see Validator#hasErrors
23
27
  */
24
- hasErrors(value: any, types: string | string[] | {
25
- name: string;
26
- }, message?: string): string | undefined;
28
+ hasErrors(value: any, options: TypeValidatorOptions): string | undefined;
27
29
  }
@@ -28,8 +28,7 @@ let TypeValidator = class TypeValidator extends Validator {
28
28
  /**
29
29
  * @summary Validates a model
30
30
  * @param {string} value
31
- * @param {string | string[] | {name: string}} types
32
- * @param {string} [message]
31
+ * @param {TypeValidatorOptions} options
33
32
  *
34
33
  * @return {string | undefined}
35
34
  *
@@ -37,9 +36,10 @@ let TypeValidator = class TypeValidator extends Validator {
37
36
  *
38
37
  * @see Validator#hasErrors
39
38
  */
40
- hasErrors(value, types, message) {
39
+ hasErrors(value, options) {
41
40
  if (value === undefined)
42
- return; // Dont try and enforce type if undefined
41
+ return; // Don't try and enforce type if undefined
42
+ const { types, message } = options;
43
43
  if (!Reflection.evaluateDesignTypes(value, types))
44
44
  return this.getMessage(message || this.message, typeof types === "string"
45
45
  ? types
@@ -58,5 +58,3 @@ Validation.register({
58
58
  validationKey: ModelKeys.TYPE,
59
59
  save: false,
60
60
  });
61
-
62
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvVHlwZVZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbEQ7Ozs7Ozs7R0FPRztBQUVJLElBQU0sYUFBYSxHQUFuQixNQUFNLGFBQWMsU0FBUSxTQUFTO0lBQzFDLFlBQVksVUFBa0Isc0JBQXNCLENBQUMsSUFBSTtRQUN2RCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0ksU0FBUyxDQUNkLEtBQVUsRUFDVixLQUEyQyxFQUMzQyxPQUFnQjtRQUVoQixJQUFJLEtBQUssS0FBSyxTQUFTO1lBQUUsT0FBTyxDQUFDLHlDQUF5QztRQUMxRSxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUM7WUFDL0MsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUNwQixPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sRUFDdkIsT0FBTyxLQUFLLEtBQUssUUFBUTtnQkFDdkIsQ0FBQyxDQUFDLEtBQUs7Z0JBQ1AsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO29CQUNwQixDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7b0JBQ2xCLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUNoQixPQUFPLEtBQUssQ0FDYixDQUFDO0lBQ04sQ0FBQztDQUNGLENBQUE7QUFsQ1ksYUFBYTtJQUR6QixTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQzs7R0FDbEIsYUFBYSxDQWtDekI7O0FBRUQsVUFBVSxDQUFDLFFBQVEsQ0FBQztJQUNsQixTQUFTLEVBQUUsYUFBYTtJQUN4QixhQUFhLEVBQUUsU0FBUyxDQUFDLElBQUk7SUFDN0IsSUFBSSxFQUFFLEtBQUs7Q0FDVyxDQUFDLENBQUMiLCJmaWxlIjoidmFsaWRhdGlvbi9WYWxpZGF0b3JzL1R5cGVWYWxpZGF0b3IuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0b3IgfSBmcm9tIFwiLi9WYWxpZGF0b3JcIjtcbmltcG9ydCB7IERFRkFVTFRfRVJST1JfTUVTU0FHRVMsIFZhbGlkYXRpb25LZXlzIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyB2YWxpZGF0b3IgfSBmcm9tIFwiLi9kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSBcIi4uL1ZhbGlkYXRpb25cIjtcbmltcG9ydCB7IFZhbGlkYXRvckRlZmluaXRpb24gfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgTW9kZWxLZXlzIH0gZnJvbSBcIi4uLy4uL3V0aWxzL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgUmVmbGVjdGlvbiB9IGZyb20gXCJAZGVjYWYtdHMvcmVmbGVjdGlvblwiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IFJlcXVpcmVkIFZhbGlkYXRvclxuICpcbiAqIEBjbGFzcyBSZXF1aXJlZFZhbGlkYXRvclxuICogQGV4dGVuZHMgVmFsaWRhdG9yXG4gKlxuICogQGNhdGVnb3J5IFZhbGlkYXRvcnNcbiAqL1xuQHZhbGlkYXRvcihWYWxpZGF0aW9uS2V5cy5UWVBFKVxuZXhwb3J0IGNsYXNzIFR5cGVWYWxpZGF0b3IgZXh0ZW5kcyBWYWxpZGF0b3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcgPSBERUZBVUxUX0VSUk9SX01FU1NBR0VTLlRZUEUpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBWYWxpZGF0ZXMgYSBtb2RlbFxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBzdHJpbmdbXSB8IHtuYW1lOiBzdHJpbmd9fSB0eXBlc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2VdXG4gICAqXG4gICAqIEByZXR1cm4ge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICpcbiAgICogQG92ZXJyaWRlXG4gICAqXG4gICAqIEBzZWUgVmFsaWRhdG9yI2hhc0Vycm9yc1xuICAgKi9cbiAgcHVibGljIGhhc0Vycm9ycyhcbiAgICB2YWx1ZTogYW55LFxuICAgIHR5cGVzOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHsgbmFtZTogc3RyaW5nIH0sXG4gICAgbWVzc2FnZT86IHN0cmluZ1xuICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm47IC8vIERvbnQgdHJ5IGFuZCBlbmZvcmNlIHR5cGUgaWYgdW5kZWZpbmVkXG4gICAgaWYgKCFSZWZsZWN0aW9uLmV2YWx1YXRlRGVzaWduVHlwZXModmFsdWUsIHR5cGVzKSlcbiAgICAgIHJldHVybiB0aGlzLmdldE1lc3NhZ2UoXG4gICAgICAgIG1lc3NhZ2UgfHwgdGhpcy5tZXNzYWdlLFxuICAgICAgICB0eXBlb2YgdHlwZXMgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICA/IHR5cGVzXG4gICAgICAgICAgOiBBcnJheS5pc0FycmF5KHR5cGVzKVxuICAgICAgICAgICAgPyB0eXBlcy5qb2luKFwiLCBcIilcbiAgICAgICAgICAgIDogdHlwZXMubmFtZSxcbiAgICAgICAgdHlwZW9mIHZhbHVlXG4gICAgICApO1xuICB9XG59XG5cblZhbGlkYXRpb24ucmVnaXN0ZXIoe1xuICB2YWxpZGF0b3I6IFR5cGVWYWxpZGF0b3IsXG4gIHZhbGlkYXRpb25LZXk6IE1vZGVsS2V5cy5UWVBFLFxuICBzYXZlOiBmYWxzZSxcbn0gYXMgVmFsaWRhdG9yRGVmaW5pdGlvbik7XG4iXX0=
@@ -1,4 +1,10 @@
1
- import { PatternValidator } from "./PatternValidator";
1
+ import { PatternValidator, PatternValidatorOptions } from "./PatternValidator";
2
+ import { ValidatorOptions } from "./Validator";
3
+ export interface URLValidatorOptions extends ValidatorOptions {
4
+ types: string | string[] | {
5
+ name: string;
6
+ };
7
+ }
2
8
  /**
3
9
  * @summary URL Validator
4
10
  * @description Pattern from {@link https://gist.github.com/dperini/729294}
@@ -14,7 +20,7 @@ export declare class URLValidator extends PatternValidator {
14
20
  * @summary Validates a model
15
21
  *
16
22
  * @param {string} value
17
- * @param {string} [message]
23
+ * @param {PatternValidatorOptions} [options={}]
18
24
  *
19
25
  * @return {string | undefined}
20
26
  *
@@ -22,5 +28,5 @@ export declare class URLValidator extends PatternValidator {
22
28
  *
23
29
  * @see Validator#hasErrors
24
30
  */
25
- hasErrors(value: string, pattern?: RegExp, message?: string): string | undefined;
31
+ hasErrors(value: string, options?: PatternValidatorOptions): string | undefined;
26
32
  }
@@ -27,7 +27,7 @@ let URLValidator = class URLValidator extends PatternValidator {
27
27
  * @summary Validates a model
28
28
  *
29
29
  * @param {string} value
30
- * @param {string} [message]
30
+ * @param {PatternValidatorOptions} [options={}]
31
31
  *
32
32
  * @return {string | undefined}
33
33
  *
@@ -35,8 +35,8 @@ let URLValidator = class URLValidator extends PatternValidator {
35
35
  *
36
36
  * @see Validator#hasErrors
37
37
  */
38
- hasErrors(value, pattern, message) {
39
- return super.hasErrors(value, pattern || DEFAULT_PATTERNS.URL, message);
38
+ hasErrors(value, options = {}) {
39
+ return super.hasErrors(value, { ...options, pattern: options.pattern || DEFAULT_PATTERNS.URL });
40
40
  }
41
41
  };
42
42
  URLValidator = __decorate([
@@ -44,5 +44,3 @@ URLValidator = __decorate([
44
44
  __metadata("design:paramtypes", [String])
45
45
  ], URLValidator);
46
46
  export { URLValidator };
47
-
48
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvVVJMVmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxjQUFjLEVBQ2Qsc0JBQXNCLEVBQ3RCLGdCQUFnQixHQUNqQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpDOzs7Ozs7OztHQVFHO0FBRUksSUFBTSxZQUFZLEdBQWxCLE1BQU0sWUFBYSxTQUFRLGdCQUFnQjtJQUNoRCxZQUFZLFVBQWtCLHNCQUFzQixDQUFDLEdBQUc7UUFDdEQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNJLFNBQVMsQ0FDZCxLQUFhLEVBQ2IsT0FBZ0IsRUFDaEIsT0FBZ0I7UUFFaEIsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxPQUFPLElBQUksZ0JBQWdCLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzFFLENBQUM7Q0FDRixDQUFBO0FBeEJZLFlBQVk7SUFEeEIsU0FBUyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUM7O0dBQ2pCLFlBQVksQ0F3QnhCIiwiZmlsZSI6InZhbGlkYXRpb24vVmFsaWRhdG9ycy9VUkxWYWxpZGF0b3IuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBWYWxpZGF0aW9uS2V5cyxcbiAgREVGQVVMVF9FUlJPUl9NRVNTQUdFUyxcbiAgREVGQVVMVF9QQVRURVJOUyxcbn0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBQYXR0ZXJuVmFsaWRhdG9yIH0gZnJvbSBcIi4vUGF0dGVyblZhbGlkYXRvclwiO1xuaW1wb3J0IHsgdmFsaWRhdG9yIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IFVSTCBWYWxpZGF0b3JcbiAqIEBkZXNjcmlwdGlvbiBQYXR0ZXJuIGZyb20ge0BsaW5rIGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2RwZXJpbmkvNzI5Mjk0fVxuICpcbiAqIEBjbGFzcyBVUkxWYWxpZGF0b3JcbiAqIEBleHRlbmRzIFBhdHRlcm5WYWxpZGF0b3JcbiAqXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdG9yc1xuICovXG5AdmFsaWRhdG9yKFZhbGlkYXRpb25LZXlzLlVSTClcbmV4cG9ydCBjbGFzcyBVUkxWYWxpZGF0b3IgZXh0ZW5kcyBQYXR0ZXJuVmFsaWRhdG9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nID0gREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5VUkwpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBWYWxpZGF0ZXMgYSBtb2RlbFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAgICogQHBhcmFtIHtzdHJpbmd9IFttZXNzYWdlXVxuICAgKlxuICAgKiBAcmV0dXJuIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqXG4gICAqIEBvdmVycmlkZVxuICAgKlxuICAgKiBAc2VlIFZhbGlkYXRvciNoYXNFcnJvcnNcbiAgICovXG4gIHB1YmxpYyBoYXNFcnJvcnMoXG4gICAgdmFsdWU6IHN0cmluZyxcbiAgICBwYXR0ZXJuPzogUmVnRXhwLFxuICAgIG1lc3NhZ2U/OiBzdHJpbmcsXG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHN1cGVyLmhhc0Vycm9ycyh2YWx1ZSwgcGF0dGVybiB8fCBERUZBVUxUX1BBVFRFUk5TLlVSTCwgbWVzc2FnZSk7XG4gIH1cbn1cbiJdfQ==