@decaf-ts/decorator-validation 1.5.2 → 1.5.5

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 (174) hide show
  1. package/LICENSE.md +0 -0
  2. package/README.md +34 -108
  3. package/dist/decorator-validation.js +2 -0
  4. package/dist/decorator-validation.js.LICENSE.txt +14 -0
  5. package/dist/esm/decorator-validation.js +2 -0
  6. package/dist/esm/decorator-validation.js.LICENSE.txt +14 -0
  7. package/lib/esm/index.d.ts +42 -0
  8. package/lib/esm/index.js +44 -0
  9. package/lib/esm/model/Model.d.ts +138 -0
  10. package/lib/esm/model/Model.js +298 -0
  11. package/lib/esm/model/ModelErrorDefinition.d.ts +22 -0
  12. package/lib/esm/model/ModelErrorDefinition.js +54 -0
  13. package/lib/esm/model/Registry.d.ts +59 -0
  14. package/lib/esm/model/Registry.js +75 -0
  15. package/lib/esm/model/constants.d.ts +56 -0
  16. package/lib/esm/model/constants.js +71 -0
  17. package/lib/esm/model/construction.d.ts +29 -0
  18. package/lib/esm/model/construction.js +65 -0
  19. package/lib/esm/model/decorators.d.ts +25 -0
  20. package/lib/esm/model/decorators.js +64 -0
  21. package/lib/esm/model/index.d.ts +9 -0
  22. package/lib/esm/model/index.js +11 -0
  23. package/lib/esm/model/types.d.ts +79 -0
  24. package/lib/esm/model/types.js +3 -0
  25. package/lib/esm/model/utils.d.ts +11 -0
  26. package/lib/esm/model/utils.js +27 -0
  27. package/lib/esm/model/validation.d.ts +14 -0
  28. package/lib/esm/model/validation.js +137 -0
  29. package/lib/esm/utils/constants.d.ts +26 -0
  30. package/lib/esm/utils/constants.js +29 -0
  31. package/lib/esm/utils/dates.d.ts +76 -0
  32. package/lib/esm/utils/dates.js +245 -0
  33. package/lib/esm/utils/decorators.d.ts +2 -0
  34. package/lib/esm/utils/decorators.js +20 -0
  35. package/lib/esm/utils/hashing.d.ts +52 -0
  36. package/lib/esm/utils/hashing.js +101 -0
  37. package/lib/esm/utils/index.d.ts +7 -0
  38. package/lib/esm/utils/index.js +9 -0
  39. package/lib/esm/utils/registry.d.ts +68 -0
  40. package/lib/esm/utils/registry.js +3 -0
  41. package/lib/esm/utils/serialization.d.ts +79 -0
  42. package/lib/esm/utils/serialization.js +90 -0
  43. package/lib/esm/utils/strings.d.ts +25 -0
  44. package/lib/esm/utils/strings.js +33 -0
  45. package/lib/esm/validation/Validation.d.ts +51 -0
  46. package/lib/esm/validation/Validation.js +73 -0
  47. package/lib/esm/validation/Validators/DateValidator.d.ts +28 -0
  48. package/lib/esm/validation/Validators/DateValidator.js +56 -0
  49. package/lib/esm/validation/Validators/EmailValidator.d.ts +28 -0
  50. package/lib/esm/validation/Validators/EmailValidator.js +52 -0
  51. package/lib/esm/validation/Validators/ListValidator.d.ts +28 -0
  52. package/lib/esm/validation/Validators/ListValidator.js +69 -0
  53. package/lib/esm/validation/Validators/MaxLengthValidator.d.ts +29 -0
  54. package/lib/esm/validation/Validators/MaxLengthValidator.js +54 -0
  55. package/lib/esm/validation/Validators/MaxValidator.d.ts +28 -0
  56. package/lib/esm/validation/Validators/MaxValidator.js +59 -0
  57. package/lib/esm/validation/Validators/MinLengthValidator.d.ts +29 -0
  58. package/lib/esm/validation/Validators/MinLengthValidator.js +54 -0
  59. package/lib/esm/validation/Validators/MinValidator.d.ts +28 -0
  60. package/lib/esm/validation/Validators/MinValidator.js +59 -0
  61. package/lib/esm/validation/Validators/PasswordValidator.d.ts +28 -0
  62. package/lib/esm/validation/Validators/PasswordValidator.js +52 -0
  63. package/lib/esm/validation/Validators/PatternValidator.d.ts +37 -0
  64. package/lib/esm/validation/Validators/PatternValidator.js +72 -0
  65. package/lib/esm/validation/Validators/RequiredValidator.d.ts +28 -0
  66. package/lib/esm/validation/Validators/RequiredValidator.js +59 -0
  67. package/lib/esm/validation/Validators/StepValidator.d.ts +29 -0
  68. package/lib/esm/validation/Validators/StepValidator.js +54 -0
  69. package/lib/esm/validation/Validators/TypeValidator.d.ts +25 -0
  70. package/lib/esm/validation/Validators/TypeValidator.js +62 -0
  71. package/lib/esm/validation/Validators/URLValidator.d.ts +27 -0
  72. package/lib/esm/validation/Validators/URLValidator.js +51 -0
  73. package/lib/esm/validation/Validators/Validator.d.ts +41 -0
  74. package/lib/esm/validation/Validators/Validator.js +49 -0
  75. package/lib/esm/validation/Validators/ValidatorRegistry.d.ts +47 -0
  76. package/lib/esm/validation/Validators/ValidatorRegistry.js +82 -0
  77. package/lib/esm/validation/Validators/constants.d.ts +96 -0
  78. package/lib/esm/validation/Validators/constants.js +136 -0
  79. package/lib/esm/validation/Validators/decorators.d.ts +12 -0
  80. package/lib/esm/validation/Validators/decorators.js +27 -0
  81. package/lib/esm/validation/Validators/index.d.ts +52 -0
  82. package/lib/esm/validation/Validators/index.js +54 -0
  83. package/lib/esm/validation/Validators/types.d.ts +88 -0
  84. package/lib/esm/validation/Validators/types.js +3 -0
  85. package/lib/esm/validation/decorators.d.ts +178 -0
  86. package/lib/esm/validation/decorators.js +290 -0
  87. package/lib/esm/validation/index.d.ts +4 -0
  88. package/lib/esm/validation/index.js +6 -0
  89. package/lib/esm/validation/types.d.ts +46 -0
  90. package/lib/esm/validation/types.js +3 -0
  91. package/lib/index.cjs +61 -0
  92. package/lib/index.d.ts +42 -0
  93. package/lib/model/Model.cjs +302 -0
  94. package/lib/model/Model.d.ts +138 -0
  95. package/lib/model/ModelErrorDefinition.cjs +58 -0
  96. package/lib/model/ModelErrorDefinition.d.ts +22 -0
  97. package/lib/model/Registry.cjs +80 -0
  98. package/lib/model/Registry.d.ts +59 -0
  99. package/lib/model/constants.cjs +74 -0
  100. package/lib/model/constants.d.ts +56 -0
  101. package/lib/model/construction.cjs +70 -0
  102. package/lib/model/construction.d.ts +29 -0
  103. package/lib/model/decorators.cjs +69 -0
  104. package/lib/model/decorators.d.ts +25 -0
  105. package/lib/model/index.cjs +27 -0
  106. package/lib/model/index.d.ts +9 -0
  107. package/lib/model/types.cjs +4 -0
  108. package/lib/model/types.d.ts +79 -0
  109. package/lib/model/utils.cjs +31 -0
  110. package/lib/model/utils.d.ts +11 -0
  111. package/lib/model/validation.cjs +140 -0
  112. package/lib/model/validation.d.ts +14 -0
  113. package/lib/utils/constants.cjs +32 -0
  114. package/lib/utils/constants.d.ts +26 -0
  115. package/lib/utils/dates.cjs +253 -0
  116. package/lib/utils/dates.d.ts +76 -0
  117. package/lib/utils/decorators.cjs +24 -0
  118. package/lib/utils/decorators.d.ts +2 -0
  119. package/lib/utils/hashing.cjs +108 -0
  120. package/lib/utils/hashing.d.ts +52 -0
  121. package/lib/utils/index.cjs +25 -0
  122. package/lib/utils/index.d.ts +7 -0
  123. package/lib/utils/registry.cjs +4 -0
  124. package/lib/utils/registry.d.ts +68 -0
  125. package/lib/utils/serialization.cjs +95 -0
  126. package/lib/utils/serialization.d.ts +79 -0
  127. package/lib/utils/strings.cjs +37 -0
  128. package/lib/utils/strings.d.ts +25 -0
  129. package/lib/validation/Validation.cjs +77 -0
  130. package/lib/validation/Validation.d.ts +51 -0
  131. package/lib/validation/Validators/DateValidator.cjs +59 -0
  132. package/lib/validation/Validators/DateValidator.d.ts +28 -0
  133. package/lib/validation/Validators/EmailValidator.cjs +55 -0
  134. package/lib/validation/Validators/EmailValidator.d.ts +28 -0
  135. package/lib/validation/Validators/ListValidator.cjs +72 -0
  136. package/lib/validation/Validators/ListValidator.d.ts +28 -0
  137. package/lib/validation/Validators/MaxLengthValidator.cjs +57 -0
  138. package/lib/validation/Validators/MaxLengthValidator.d.ts +29 -0
  139. package/lib/validation/Validators/MaxValidator.cjs +62 -0
  140. package/lib/validation/Validators/MaxValidator.d.ts +28 -0
  141. package/lib/validation/Validators/MinLengthValidator.cjs +57 -0
  142. package/lib/validation/Validators/MinLengthValidator.d.ts +29 -0
  143. package/lib/validation/Validators/MinValidator.cjs +62 -0
  144. package/lib/validation/Validators/MinValidator.d.ts +28 -0
  145. package/lib/validation/Validators/PasswordValidator.cjs +55 -0
  146. package/lib/validation/Validators/PasswordValidator.d.ts +28 -0
  147. package/lib/validation/Validators/PatternValidator.cjs +75 -0
  148. package/lib/validation/Validators/PatternValidator.d.ts +37 -0
  149. package/lib/validation/Validators/RequiredValidator.cjs +62 -0
  150. package/lib/validation/Validators/RequiredValidator.d.ts +28 -0
  151. package/lib/validation/Validators/StepValidator.cjs +57 -0
  152. package/lib/validation/Validators/StepValidator.d.ts +29 -0
  153. package/lib/validation/Validators/TypeValidator.cjs +65 -0
  154. package/lib/validation/Validators/TypeValidator.d.ts +25 -0
  155. package/lib/validation/Validators/URLValidator.cjs +54 -0
  156. package/lib/validation/Validators/URLValidator.d.ts +27 -0
  157. package/lib/validation/Validators/Validator.cjs +53 -0
  158. package/lib/validation/Validators/Validator.d.ts +41 -0
  159. package/lib/validation/Validators/ValidatorRegistry.cjs +87 -0
  160. package/lib/validation/Validators/ValidatorRegistry.d.ts +47 -0
  161. package/lib/validation/Validators/constants.cjs +139 -0
  162. package/lib/validation/Validators/constants.d.ts +96 -0
  163. package/lib/validation/Validators/decorators.cjs +30 -0
  164. package/lib/validation/Validators/decorators.d.ts +12 -0
  165. package/lib/validation/Validators/index.cjs +71 -0
  166. package/lib/validation/Validators/index.d.ts +52 -0
  167. package/lib/validation/Validators/types.d.ts +88 -0
  168. package/lib/validation/decorators.cjs +306 -0
  169. package/lib/validation/decorators.d.ts +178 -0
  170. package/lib/validation/index.cjs +22 -0
  171. package/lib/validation/index.d.ts +4 -0
  172. package/lib/validation/types.cjs +4 -0
  173. package/lib/validation/types.d.ts +46 -0
  174. package/package.json +18 -13
@@ -0,0 +1,28 @@
1
+ import { Validator } from "./Validator";
2
+ import { DateValidatorOptions } from "./types";
3
+ /**
4
+ * @summary Date Validator
5
+ *
6
+ * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#DATE}
7
+ *
8
+ * @class DateValidator
9
+ * @extends Validator
10
+ *
11
+ * @category Validators
12
+ */
13
+ export declare class DateValidator extends Validator<DateValidatorOptions> {
14
+ constructor(message?: string);
15
+ /**
16
+ * @summary Validates a model
17
+ *
18
+ * @param {Date | string} value
19
+ * @param {DateValidatorOptions} [options]
20
+ *
21
+ * @return {string | undefined}
22
+ *
23
+ * @override
24
+ *
25
+ * @see Validator#hasErrors
26
+ */
27
+ hasErrors(value: Date | string, options?: DateValidatorOptions): string | undefined;
28
+ }
@@ -0,0 +1,56 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Validator } from "./Validator";
11
+ import { DEFAULT_ERROR_MESSAGES, ValidationKeys } from "./constants";
12
+ import { validator } from "./decorators";
13
+ /**
14
+ * @summary Date Validator
15
+ *
16
+ * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#DATE}
17
+ *
18
+ * @class DateValidator
19
+ * @extends Validator
20
+ *
21
+ * @category Validators
22
+ */
23
+ let DateValidator = class DateValidator extends Validator {
24
+ constructor(message = DEFAULT_ERROR_MESSAGES.DATE) {
25
+ super(message, Number.name, Date.name, String.name);
26
+ }
27
+ /**
28
+ * @summary Validates a model
29
+ *
30
+ * @param {Date | string} value
31
+ * @param {DateValidatorOptions} [options]
32
+ *
33
+ * @return {string | undefined}
34
+ *
35
+ * @override
36
+ *
37
+ * @see Validator#hasErrors
38
+ */
39
+ hasErrors(value, options = {}) {
40
+ if (value === undefined)
41
+ return;
42
+ if (typeof value === "string")
43
+ value = new Date(value);
44
+ if (Number.isNaN(value.getDate())) {
45
+ const { message = "" } = options;
46
+ return this.getMessage(message || this.message);
47
+ }
48
+ }
49
+ };
50
+ DateValidator = __decorate([
51
+ validator(ValidationKeys.DATE),
52
+ __metadata("design:paramtypes", [String])
53
+ ], DateValidator);
54
+ export { DateValidator };
55
+
56
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvRGF0ZVZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUd6Qzs7Ozs7Ozs7O0dBU0c7QUFFSSxJQUFNLGFBQWEsR0FBbkIsTUFBTSxhQUFjLFNBQVEsU0FBK0I7SUFDaEUsWUFBWSxVQUFrQixzQkFBc0IsQ0FBQyxJQUFJO1FBQ3ZELEtBQUssQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSSxTQUFTLENBQ2QsS0FBb0IsRUFDcEIsVUFBZ0MsRUFBRTtRQUVsQyxJQUFJLEtBQUssS0FBSyxTQUFTO1lBQUUsT0FBTztRQUVoQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVE7WUFBRSxLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdkQsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDbEMsTUFBTSxFQUFFLE9BQU8sR0FBRyxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUM7WUFDakMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEQsQ0FBQztJQUNILENBQUM7Q0FDRixDQUFBO0FBOUJZLGFBQWE7SUFEekIsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7O0dBQ2xCLGFBQWEsQ0E4QnpCIiwiZmlsZSI6InZhbGlkYXRpb24vVmFsaWRhdG9ycy9EYXRlVmFsaWRhdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSBcIi4vVmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBERUZBVUxUX0VSUk9SX01FU1NBR0VTLCBWYWxpZGF0aW9uS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgdmFsaWRhdG9yIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgRGF0ZVZhbGlkYXRvck9wdGlvbnMgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IERhdGUgVmFsaWRhdG9yXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IFttZXNzYWdlXSBkZWZhdWx0cyB0byB7QGxpbmsgREVGQVVMVF9FUlJPUl9NRVNTQUdFUyNEQVRFfVxuICpcbiAqIEBjbGFzcyBEYXRlVmFsaWRhdG9yXG4gKiBAZXh0ZW5kcyBWYWxpZGF0b3JcbiAqXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdG9yc1xuICovXG5AdmFsaWRhdG9yKFZhbGlkYXRpb25LZXlzLkRBVEUpXG5leHBvcnQgY2xhc3MgRGF0ZVZhbGlkYXRvciBleHRlbmRzIFZhbGlkYXRvcjxEYXRlVmFsaWRhdG9yT3B0aW9ucz4ge1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcgPSBERUZBVUxUX0VSUk9SX01FU1NBR0VTLkRBVEUpIHtcbiAgICBzdXBlcihtZXNzYWdlLCBOdW1iZXIubmFtZSwgRGF0ZS5uYW1lLCBTdHJpbmcubmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgVmFsaWRhdGVzIGEgbW9kZWxcbiAgICpcbiAgICogQHBhcmFtIHtEYXRlIHwgc3RyaW5nfSB2YWx1ZVxuICAgKiBAcGFyYW0ge0RhdGVWYWxpZGF0b3JPcHRpb25zfSBbb3B0aW9uc11cbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKlxuICAgKiBAb3ZlcnJpZGVcbiAgICpcbiAgICogQHNlZSBWYWxpZGF0b3IjaGFzRXJyb3JzXG4gICAqL1xuICBwdWJsaWMgaGFzRXJyb3JzKFxuICAgIHZhbHVlOiBEYXRlIHwgc3RyaW5nLFxuICAgIG9wdGlvbnM6IERhdGVWYWxpZGF0b3JPcHRpb25zID0ge31cbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikgdmFsdWUgPSBuZXcgRGF0ZSh2YWx1ZSk7XG5cbiAgICBpZiAoTnVtYmVyLmlzTmFOKHZhbHVlLmdldERhdGUoKSkpIHtcbiAgICAgIGNvbnN0IHsgbWVzc2FnZSA9IFwiXCIgfSA9IG9wdGlvbnM7XG4gICAgICByZXR1cm4gdGhpcy5nZXRNZXNzYWdlKG1lc3NhZ2UgfHwgdGhpcy5tZXNzYWdlKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { PatternValidator } from "./PatternValidator";
2
+ import { PatternValidatorOptions } from "./types";
3
+ /**
4
+ * @summary Email Validator
5
+ *
6
+ * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#EMAIL}
7
+ *
8
+ * @class EmailValidator
9
+ * @extends PatternValidator
10
+ *
11
+ * @category Validators
12
+ */
13
+ export declare class EmailValidator extends PatternValidator {
14
+ constructor(message?: string);
15
+ /**
16
+ * @summary Validates a model
17
+ *
18
+ * @param {string} value
19
+ * @param {PatternValidatorOptions} [options]
20
+ *
21
+ * @return {string | undefined}
22
+ *
23
+ * @override
24
+ *
25
+ * @see Validator#hasErrors
26
+ */
27
+ hasErrors(value: string, options?: PatternValidatorOptions): string | undefined;
28
+ }
@@ -0,0 +1,52 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { DEFAULT_ERROR_MESSAGES, DEFAULT_PATTERNS, ValidationKeys, } from "./constants";
11
+ import { PatternValidator } from "./PatternValidator";
12
+ import { validator } from "./decorators";
13
+ /**
14
+ * @summary Email Validator
15
+ *
16
+ * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#EMAIL}
17
+ *
18
+ * @class EmailValidator
19
+ * @extends PatternValidator
20
+ *
21
+ * @category Validators
22
+ */
23
+ let EmailValidator = class EmailValidator extends PatternValidator {
24
+ constructor(message = DEFAULT_ERROR_MESSAGES.EMAIL) {
25
+ super(message);
26
+ }
27
+ /**
28
+ * @summary Validates a model
29
+ *
30
+ * @param {string} value
31
+ * @param {PatternValidatorOptions} [options]
32
+ *
33
+ * @return {string | undefined}
34
+ *
35
+ * @override
36
+ *
37
+ * @see Validator#hasErrors
38
+ */
39
+ hasErrors(value, options = {}) {
40
+ return super.hasErrors(value, {
41
+ ...options,
42
+ pattern: options?.pattern || DEFAULT_PATTERNS.EMAIL,
43
+ });
44
+ }
45
+ };
46
+ EmailValidator = __decorate([
47
+ validator(ValidationKeys.EMAIL),
48
+ __metadata("design:paramtypes", [String])
49
+ ], EmailValidator);
50
+ export { EmailValidator };
51
+
52
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvRW1haWxWYWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixnQkFBZ0IsRUFDaEIsY0FBYyxHQUNmLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHekM7Ozs7Ozs7OztHQVNHO0FBRUksSUFBTSxjQUFjLEdBQXBCLE1BQU0sY0FBZSxTQUFRLGdCQUFnQjtJQUNsRCxZQUFZLFVBQWtCLHNCQUFzQixDQUFDLEtBQUs7UUFDeEQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNJLFNBQVMsQ0FDZCxLQUFhLEVBQ2IsVUFBbUMsRUFBRTtRQUVyQyxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFO1lBQzVCLEdBQUcsT0FBTztZQUNWLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxJQUFJLGdCQUFnQixDQUFDLEtBQUs7U0FDcEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGLENBQUE7QUExQlksY0FBYztJQUQxQixTQUFTLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQzs7R0FDbkIsY0FBYyxDQTBCMUIiLCJmaWxlIjoidmFsaWRhdGlvbi9WYWxpZGF0b3JzL0VtYWlsVmFsaWRhdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgREVGQVVMVF9FUlJPUl9NRVNTQUdFUyxcbiAgREVGQVVMVF9QQVRURVJOUyxcbiAgVmFsaWRhdGlvbktleXMsXG59IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgUGF0dGVyblZhbGlkYXRvciB9IGZyb20gXCIuL1BhdHRlcm5WYWxpZGF0b3JcIjtcbmltcG9ydCB7IHZhbGlkYXRvciB9IGZyb20gXCIuL2RlY29yYXRvcnNcIjtcbmltcG9ydCB7IFBhdHRlcm5WYWxpZGF0b3JPcHRpb25zIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBFbWFpbCBWYWxpZGF0b3JcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2VdIGRlZmF1bHRzIHRvIHtAbGluayBERUZBVUxUX0VSUk9SX01FU1NBR0VTI0VNQUlMfVxuICpcbiAqIEBjbGFzcyBFbWFpbFZhbGlkYXRvclxuICogQGV4dGVuZHMgUGF0dGVyblZhbGlkYXRvclxuICpcbiAqIEBjYXRlZ29yeSBWYWxpZGF0b3JzXG4gKi9cbkB2YWxpZGF0b3IoVmFsaWRhdGlvbktleXMuRU1BSUwpXG5leHBvcnQgY2xhc3MgRW1haWxWYWxpZGF0b3IgZXh0ZW5kcyBQYXR0ZXJuVmFsaWRhdG9yIHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nID0gREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5FTUFJTCkge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFZhbGlkYXRlcyBhIG1vZGVsXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICAgKiBAcGFyYW0ge1BhdHRlcm5WYWxpZGF0b3JPcHRpb25zfSBbb3B0aW9uc11cbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKlxuICAgKiBAb3ZlcnJpZGVcbiAgICpcbiAgICogQHNlZSBWYWxpZGF0b3IjaGFzRXJyb3JzXG4gICAqL1xuICBwdWJsaWMgaGFzRXJyb3JzKFxuICAgIHZhbHVlOiBzdHJpbmcsXG4gICAgb3B0aW9uczogUGF0dGVyblZhbGlkYXRvck9wdGlvbnMgPSB7fVxuICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBzdXBlci5oYXNFcnJvcnModmFsdWUsIHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBwYXR0ZXJuOiBvcHRpb25zPy5wYXR0ZXJuIHx8IERFRkFVTFRfUEFUVEVSTlMuRU1BSUwsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { Validator } from "./Validator";
2
+ import { ListValidatorOptions } from "./types";
3
+ /**
4
+ * @summary List Validator
5
+ *
6
+ * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#LIST}
7
+ *
8
+ * @class ListValidator
9
+ * @extends Validator
10
+ *
11
+ * @category Validators
12
+ */
13
+ export declare class ListValidator extends Validator<ListValidatorOptions> {
14
+ constructor(message?: string);
15
+ /**
16
+ * @summary Validates a model
17
+ *
18
+ * @param {any[] | Set<any>} value
19
+ * @param {ListValidatorOptions} options
20
+ *
21
+ * @return {string | undefined}
22
+ *
23
+ * @override
24
+ *
25
+ * @see Validator#hasErrors
26
+ */
27
+ hasErrors(value: any[] | Set<any>, options: ListValidatorOptions): string | undefined;
28
+ }
@@ -0,0 +1,69 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Validator } from "./Validator";
11
+ import { DEFAULT_ERROR_MESSAGES, ValidationKeys } from "./constants";
12
+ import { validator } from "./decorators";
13
+ /**
14
+ * @summary List Validator
15
+ *
16
+ * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#LIST}
17
+ *
18
+ * @class ListValidator
19
+ * @extends Validator
20
+ *
21
+ * @category Validators
22
+ */
23
+ let ListValidator = class ListValidator extends Validator {
24
+ constructor(message = DEFAULT_ERROR_MESSAGES.LIST) {
25
+ super(message, Array.name, Set.name);
26
+ }
27
+ /**
28
+ * @summary Validates a model
29
+ *
30
+ * @param {any[] | Set<any>} value
31
+ * @param {ListValidatorOptions} options
32
+ *
33
+ * @return {string | undefined}
34
+ *
35
+ * @override
36
+ *
37
+ * @see Validator#hasErrors
38
+ */
39
+ hasErrors(value, options) {
40
+ if (!value || (Array.isArray(value) ? !value.length : !value.size))
41
+ return;
42
+ const clazz = Array.isArray(options.clazz)
43
+ ? options.clazz
44
+ : [options.clazz];
45
+ let val, isValid = true;
46
+ for (let i = 0; i < (Array.isArray(value) ? value.length : value.size); i++) {
47
+ val = value[i];
48
+ switch (typeof val) {
49
+ case "object":
50
+ case "function":
51
+ isValid = clazz.includes(val.constructor?.name);
52
+ break;
53
+ default:
54
+ isValid = clazz.some((c) => typeof val === c.toLowerCase());
55
+ break;
56
+ }
57
+ }
58
+ return isValid
59
+ ? undefined
60
+ : this.getMessage(options.message || this.message, clazz);
61
+ }
62
+ };
63
+ ListValidator = __decorate([
64
+ validator(ValidationKeys.LIST),
65
+ __metadata("design:paramtypes", [String])
66
+ ], ListValidator);
67
+ export { ListValidator };
68
+
69
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvTGlzdFZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUd6Qzs7Ozs7Ozs7O0dBU0c7QUFFSSxJQUFNLGFBQWEsR0FBbkIsTUFBTSxhQUFjLFNBQVEsU0FBK0I7SUFDaEUsWUFBWSxVQUFrQixzQkFBc0IsQ0FBQyxJQUFJO1FBQ3ZELEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0gsU0FBUyxDQUNQLEtBQXVCLEVBQ3ZCLE9BQTZCO1FBRTdCLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztZQUFFLE9BQU87UUFFM0UsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQ3hDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSztZQUNmLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQixJQUFJLEdBQVEsRUFDVixPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLEtBQ0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUNULENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFDdEQsQ0FBQyxFQUFFLEVBQ0gsQ0FBQztZQUNELEdBQUcsR0FBSSxLQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEIsUUFBUSxPQUFPLEdBQUcsRUFBRSxDQUFDO2dCQUNuQixLQUFLLFFBQVEsQ0FBQztnQkFDZCxLQUFLLFVBQVU7b0JBQ2IsT0FBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUUsR0FBYyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFDNUQsTUFBTTtnQkFDUjtvQkFDRSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7b0JBQzVELE1BQU07WUFDVixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sT0FBTztZQUNaLENBQUMsQ0FBQyxTQUFTO1lBQ1gsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlELENBQUM7Q0FDRixDQUFBO0FBakRZLGFBQWE7SUFEekIsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7O0dBQ2xCLGFBQWEsQ0FpRHpCIiwiZmlsZSI6InZhbGlkYXRpb24vVmFsaWRhdG9ycy9MaXN0VmFsaWRhdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSBcIi4vVmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBERUZBVUxUX0VSUk9SX01FU1NBR0VTLCBWYWxpZGF0aW9uS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgdmFsaWRhdG9yIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgTGlzdFZhbGlkYXRvck9wdGlvbnMgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IExpc3QgVmFsaWRhdG9yXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IFttZXNzYWdlXSBkZWZhdWx0cyB0byB7QGxpbmsgREVGQVVMVF9FUlJPUl9NRVNTQUdFUyNMSVNUfVxuICpcbiAqIEBjbGFzcyBMaXN0VmFsaWRhdG9yXG4gKiBAZXh0ZW5kcyBWYWxpZGF0b3JcbiAqXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdG9yc1xuICovXG5AdmFsaWRhdG9yKFZhbGlkYXRpb25LZXlzLkxJU1QpXG5leHBvcnQgY2xhc3MgTGlzdFZhbGlkYXRvciBleHRlbmRzIFZhbGlkYXRvcjxMaXN0VmFsaWRhdG9yT3B0aW9ucz4ge1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcgPSBERUZBVUxUX0VSUk9SX01FU1NBR0VTLkxJU1QpIHtcbiAgICBzdXBlcihtZXNzYWdlLCBBcnJheS5uYW1lLCBTZXQubmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgVmFsaWRhdGVzIGEgbW9kZWxcbiAgICpcbiAgICogQHBhcmFtIHthbnlbXSB8IFNldDxhbnk+fSB2YWx1ZVxuICAgKiBAcGFyYW0ge0xpc3RWYWxpZGF0b3JPcHRpb25zfSBvcHRpb25zXG4gICAqXG4gICAqIEByZXR1cm4ge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICpcbiAgICogQG92ZXJyaWRlXG4gICAqXG4gICAqIEBzZWUgVmFsaWRhdG9yI2hhc0Vycm9yc1xuICAgKi9cbiAgaGFzRXJyb3JzKFxuICAgIHZhbHVlOiBhbnlbXSB8IFNldDxhbnk+LFxuICAgIG9wdGlvbnM6IExpc3RWYWxpZGF0b3JPcHRpb25zXG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF2YWx1ZSB8fCAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyAhdmFsdWUubGVuZ3RoIDogIXZhbHVlLnNpemUpKSByZXR1cm47XG5cbiAgICBjb25zdCBjbGF6eiA9IEFycmF5LmlzQXJyYXkob3B0aW9ucy5jbGF6eilcbiAgICAgID8gb3B0aW9ucy5jbGF6elxuICAgICAgOiBbb3B0aW9ucy5jbGF6el07XG4gICAgbGV0IHZhbDogYW55LFxuICAgICAgaXNWYWxpZCA9IHRydWU7XG4gICAgZm9yIChcbiAgICAgIGxldCBpID0gMDtcbiAgICAgIGkgPCAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZS5sZW5ndGggOiB2YWx1ZS5zaXplKTtcbiAgICAgIGkrK1xuICAgICkge1xuICAgICAgdmFsID0gKHZhbHVlIGFzIGFueSlbaV07XG4gICAgICBzd2l0Y2ggKHR5cGVvZiB2YWwpIHtcbiAgICAgICAgY2FzZSBcIm9iamVjdFwiOlxuICAgICAgICBjYXNlIFwiZnVuY3Rpb25cIjpcbiAgICAgICAgICBpc1ZhbGlkID0gY2xhenouaW5jbHVkZXMoKHZhbCBhcyBvYmplY3QpLmNvbnN0cnVjdG9yPy5uYW1lKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBpc1ZhbGlkID0gY2xhenouc29tZSgoYykgPT4gdHlwZW9mIHZhbCA9PT0gYy50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gaXNWYWxpZFxuICAgICAgPyB1bmRlZmluZWRcbiAgICAgIDogdGhpcy5nZXRNZXNzYWdlKG9wdGlvbnMubWVzc2FnZSB8fCB0aGlzLm1lc3NhZ2UsIGNsYXp6KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,29 @@
1
+ import { Validator } from "./Validator";
2
+ import { MaxLengthValidatorOptions } from "./types";
3
+ /**
4
+ * @summary Maximum Length Validator
5
+ * @description Validates strings and Arrays on their maximum length
6
+ *
7
+ * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#MAX_LENGTH}
8
+ *
9
+ * @class MinLengthValidator
10
+ * @extends Validator
11
+ *
12
+ * @category Validators
13
+ */
14
+ export declare class MaxLengthValidator extends Validator<MaxLengthValidatorOptions> {
15
+ constructor(message?: string);
16
+ /**
17
+ * @summary Validates a model
18
+ *
19
+ * @param {string} value
20
+ * @param {MaxLengthValidatorOptions} options
21
+ *
22
+ * @return {string | undefined}
23
+ *
24
+ * @override
25
+ *
26
+ * @see Validator#hasErrors
27
+ */
28
+ hasErrors(value: string | any[], options: MaxLengthValidatorOptions): string | undefined;
29
+ }
@@ -0,0 +1,54 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Validator } from "./Validator";
11
+ import { ValidationKeys, DEFAULT_ERROR_MESSAGES } from "./constants";
12
+ import { validator } from "./decorators";
13
+ /**
14
+ * @summary Maximum Length Validator
15
+ * @description Validates strings and Arrays on their maximum length
16
+ *
17
+ * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#MAX_LENGTH}
18
+ *
19
+ * @class MinLengthValidator
20
+ * @extends Validator
21
+ *
22
+ * @category Validators
23
+ */
24
+ let MaxLengthValidator = class MaxLengthValidator extends Validator {
25
+ constructor(message = DEFAULT_ERROR_MESSAGES.MAX_LENGTH) {
26
+ super(message, String.name, Array.name);
27
+ }
28
+ /**
29
+ * @summary Validates a model
30
+ *
31
+ * @param {string} value
32
+ * @param {MaxLengthValidatorOptions} options
33
+ *
34
+ * @return {string | undefined}
35
+ *
36
+ * @override
37
+ *
38
+ * @see Validator#hasErrors
39
+ */
40
+ hasErrors(value, options) {
41
+ if (typeof value === "undefined")
42
+ return;
43
+ return value.length > options.maxLength
44
+ ? this.getMessage(options.message || this.message, options.maxLength)
45
+ : undefined;
46
+ }
47
+ };
48
+ MaxLengthValidator = __decorate([
49
+ validator(ValidationKeys.MAX_LENGTH),
50
+ __metadata("design:paramtypes", [String])
51
+ ], MaxLengthValidator);
52
+ export { MaxLengthValidator };
53
+
54
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvTWF4TGVuZ3RoVmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR3pDOzs7Ozs7Ozs7O0dBVUc7QUFFSSxJQUFNLGtCQUFrQixHQUF4QixNQUFNLGtCQUFtQixTQUFRLFNBQW9DO0lBQzFFLFlBQVksVUFBa0Isc0JBQXNCLENBQUMsVUFBVTtRQUM3RCxLQUFLLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNJLFNBQVMsQ0FDZCxLQUFxQixFQUNyQixPQUFrQztRQUVsQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFdBQVc7WUFBRSxPQUFPO1FBQ3pDLE9BQU8sS0FBSyxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsU0FBUztZQUNyQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQztZQUNyRSxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2hCLENBQUM7Q0FDRixDQUFBO0FBMUJZLGtCQUFrQjtJQUQ5QixTQUFTLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQzs7R0FDeEIsa0JBQWtCLENBMEI5QiIsImZpbGUiOiJ2YWxpZGF0aW9uL1ZhbGlkYXRvcnMvTWF4TGVuZ3RoVmFsaWRhdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSBcIi4vVmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBWYWxpZGF0aW9uS2V5cywgREVGQVVMVF9FUlJPUl9NRVNTQUdFUyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgdmFsaWRhdG9yIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgTWF4TGVuZ3RoVmFsaWRhdG9yT3B0aW9ucyB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgTWF4aW11bSBMZW5ndGggVmFsaWRhdG9yXG4gKiBAZGVzY3JpcHRpb24gVmFsaWRhdGVzIHN0cmluZ3MgYW5kIEFycmF5cyBvbiB0aGVpciBtYXhpbXVtIGxlbmd0aFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZV0gZGVmYXVsdHMgdG8ge0BsaW5rIERFRkFVTFRfRVJST1JfTUVTU0FHRVMjTUFYX0xFTkdUSH1cbiAqXG4gKiBAY2xhc3MgTWluTGVuZ3RoVmFsaWRhdG9yXG4gKiBAZXh0ZW5kcyBWYWxpZGF0b3JcbiAqXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdG9yc1xuICovXG5AdmFsaWRhdG9yKFZhbGlkYXRpb25LZXlzLk1BWF9MRU5HVEgpXG5leHBvcnQgY2xhc3MgTWF4TGVuZ3RoVmFsaWRhdG9yIGV4dGVuZHMgVmFsaWRhdG9yPE1heExlbmd0aFZhbGlkYXRvck9wdGlvbnM+IHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nID0gREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5NQVhfTEVOR1RIKSB7XG4gICAgc3VwZXIobWVzc2FnZSwgU3RyaW5nLm5hbWUsIEFycmF5Lm5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFZhbGlkYXRlcyBhIG1vZGVsXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICAgKiBAcGFyYW0ge01heExlbmd0aFZhbGlkYXRvck9wdGlvbnN9IG9wdGlvbnNcbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKlxuICAgKiBAb3ZlcnJpZGVcbiAgICpcbiAgICogQHNlZSBWYWxpZGF0b3IjaGFzRXJyb3JzXG4gICAqL1xuICBwdWJsaWMgaGFzRXJyb3JzKFxuICAgIHZhbHVlOiBzdHJpbmcgfCBhbnlbXSxcbiAgICBvcHRpb25zOiBNYXhMZW5ndGhWYWxpZGF0b3JPcHRpb25zXG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuO1xuICAgIHJldHVybiB2YWx1ZS5sZW5ndGggPiBvcHRpb25zLm1heExlbmd0aFxuICAgICAgPyB0aGlzLmdldE1lc3NhZ2Uob3B0aW9ucy5tZXNzYWdlIHx8IHRoaXMubWVzc2FnZSwgb3B0aW9ucy5tYXhMZW5ndGgpXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgfVxufVxuIl19
@@ -0,0 +1,28 @@
1
+ import { Validator } from "./Validator";
2
+ import { MaxValidatorOptions } from "./types";
3
+ /**
4
+ * @summary Max Validator
5
+ *
6
+ * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#MAX}
7
+ *
8
+ * @class MaxValidator
9
+ * @extends Validator
10
+ *
11
+ * @category Validators
12
+ */
13
+ export declare class MaxValidator extends Validator<MaxValidatorOptions> {
14
+ constructor(message?: string);
15
+ /**
16
+ * @summary Validates a Model
17
+ *
18
+ * @param {string} value
19
+ * @param {MaxValidatorOptions} options
20
+ *
21
+ * @return {string | undefined}
22
+ *
23
+ * @override
24
+ *
25
+ * @see Validator#hasErrors
26
+ */
27
+ hasErrors(value: number | Date | string, options: MaxValidatorOptions): string | undefined;
28
+ }
@@ -0,0 +1,59 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Validator } from "./Validator";
11
+ import { DEFAULT_ERROR_MESSAGES, ValidationKeys } from "./constants";
12
+ import { validator } from "./decorators";
13
+ /**
14
+ * @summary Max Validator
15
+ *
16
+ * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#MAX}
17
+ *
18
+ * @class MaxValidator
19
+ * @extends Validator
20
+ *
21
+ * @category Validators
22
+ */
23
+ let MaxValidator = class MaxValidator extends Validator {
24
+ constructor(message = DEFAULT_ERROR_MESSAGES.MAX) {
25
+ super(message, "number", "Date", "string");
26
+ }
27
+ /**
28
+ * @summary Validates a Model
29
+ *
30
+ * @param {string} value
31
+ * @param {MaxValidatorOptions} options
32
+ *
33
+ * @return {string | undefined}
34
+ *
35
+ * @override
36
+ *
37
+ * @see Validator#hasErrors
38
+ */
39
+ hasErrors(value, options) {
40
+ if (typeof value === "undefined")
41
+ return;
42
+ let { max } = options;
43
+ if (value instanceof Date && !(max instanceof Date)) {
44
+ max = new Date(max);
45
+ if (Number.isNaN(max.getDate()))
46
+ throw new Error("Invalid Max param defined");
47
+ }
48
+ return value > max
49
+ ? this.getMessage(options.message || this.message, max)
50
+ : undefined;
51
+ }
52
+ };
53
+ MaxValidator = __decorate([
54
+ validator(ValidationKeys.MAX),
55
+ __metadata("design:paramtypes", [String])
56
+ ], MaxValidator);
57
+ export { MaxValidator };
58
+
59
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvTWF4VmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR3pDOzs7Ozs7Ozs7R0FTRztBQUVJLElBQU0sWUFBWSxHQUFsQixNQUFNLFlBQWEsU0FBUSxTQUE4QjtJQUM5RCxZQUFZLFVBQWtCLHNCQUFzQixDQUFDLEdBQUc7UUFDdEQsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNJLFNBQVMsQ0FDZCxLQUE2QixFQUM3QixPQUE0QjtRQUU1QixJQUFJLE9BQU8sS0FBSyxLQUFLLFdBQVc7WUFBRSxPQUFPO1FBRXpDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDdEIsSUFBSSxLQUFLLFlBQVksSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLFlBQVksSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNwRCxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEIsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFFRCxPQUFPLEtBQUssR0FBRyxHQUFHO1lBQ2hCLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUM7WUFDdkQsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNoQixDQUFDO0NBQ0YsQ0FBQTtBQWxDWSxZQUFZO0lBRHhCLFNBQVMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDOztHQUNqQixZQUFZLENBa0N4QiIsImZpbGUiOiJ2YWxpZGF0aW9uL1ZhbGlkYXRvcnMvTWF4VmFsaWRhdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSBcIi4vVmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBERUZBVUxUX0VSUk9SX01FU1NBR0VTLCBWYWxpZGF0aW9uS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgdmFsaWRhdG9yIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgTWF4VmFsaWRhdG9yT3B0aW9ucyB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgTWF4IFZhbGlkYXRvclxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZV0gZGVmYXVsdHMgdG8ge0BsaW5rIERFRkFVTFRfRVJST1JfTUVTU0FHRVMjTUFYfVxuICpcbiAqIEBjbGFzcyBNYXhWYWxpZGF0b3JcbiAqIEBleHRlbmRzIFZhbGlkYXRvclxuICpcbiAqIEBjYXRlZ29yeSBWYWxpZGF0b3JzXG4gKi9cbkB2YWxpZGF0b3IoVmFsaWRhdGlvbktleXMuTUFYKVxuZXhwb3J0IGNsYXNzIE1heFZhbGlkYXRvciBleHRlbmRzIFZhbGlkYXRvcjxNYXhWYWxpZGF0b3JPcHRpb25zPiB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZyA9IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuTUFYKSB7XG4gICAgc3VwZXIobWVzc2FnZSwgXCJudW1iZXJcIiwgXCJEYXRlXCIsIFwic3RyaW5nXCIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFZhbGlkYXRlcyBhIE1vZGVsXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICAgKiBAcGFyYW0ge01heFZhbGlkYXRvck9wdGlvbnN9IG9wdGlvbnNcbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKlxuICAgKiBAb3ZlcnJpZGVcbiAgICpcbiAgICogQHNlZSBWYWxpZGF0b3IjaGFzRXJyb3JzXG4gICAqL1xuICBwdWJsaWMgaGFzRXJyb3JzKFxuICAgIHZhbHVlOiBudW1iZXIgfCBEYXRlIHwgc3RyaW5nLFxuICAgIG9wdGlvbnM6IE1heFZhbGlkYXRvck9wdGlvbnNcbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm47XG5cbiAgICBsZXQgeyBtYXggfSA9IG9wdGlvbnM7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSAmJiAhKG1heCBpbnN0YW5jZW9mIERhdGUpKSB7XG4gICAgICBtYXggPSBuZXcgRGF0ZShtYXgpO1xuICAgICAgaWYgKE51bWJlci5pc05hTihtYXguZ2V0RGF0ZSgpKSlcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBNYXggcGFyYW0gZGVmaW5lZFwiKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWUgPiBtYXhcbiAgICAgID8gdGhpcy5nZXRNZXNzYWdlKG9wdGlvbnMubWVzc2FnZSB8fCB0aGlzLm1lc3NhZ2UsIG1heClcbiAgICAgIDogdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,29 @@
1
+ import { Validator } from "./Validator";
2
+ import { MinLengthValidatorOptions } from "./types";
3
+ /**
4
+ * @summary Minimum Length Validator
5
+ * @description Validates strings and Arrays on their minimum length
6
+ *
7
+ * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#MIN_LENGTH}
8
+ *
9
+ * @class MinLengthValidator
10
+ * @extends Validator
11
+ *
12
+ * @category Validators
13
+ */
14
+ export declare class MinLengthValidator extends Validator<MinLengthValidatorOptions> {
15
+ constructor(message?: string);
16
+ /**
17
+ *
18
+ * @param {string | Array} value
19
+ * @param {MinLengthValidatorOptions} options
20
+ *
21
+ * @return {string | undefined}
22
+ *
23
+ * @memberOf MinLengthValidator
24
+ * @override
25
+ *
26
+ * @see Validator#hasErrors
27
+ */
28
+ hasErrors(value: string | any[], options: MinLengthValidatorOptions): string | undefined;
29
+ }
@@ -0,0 +1,54 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Validator } from "./Validator";
11
+ import { DEFAULT_ERROR_MESSAGES, ValidationKeys } from "./constants";
12
+ import { validator } from "./decorators";
13
+ /**
14
+ * @summary Minimum Length Validator
15
+ * @description Validates strings and Arrays on their minimum length
16
+ *
17
+ * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#MIN_LENGTH}
18
+ *
19
+ * @class MinLengthValidator
20
+ * @extends Validator
21
+ *
22
+ * @category Validators
23
+ */
24
+ let MinLengthValidator = class MinLengthValidator extends Validator {
25
+ constructor(message = DEFAULT_ERROR_MESSAGES.MIN_LENGTH) {
26
+ super(message, String.name, Array.name);
27
+ }
28
+ /**
29
+ *
30
+ * @param {string | Array} value
31
+ * @param {MinLengthValidatorOptions} options
32
+ *
33
+ * @return {string | undefined}
34
+ *
35
+ * @memberOf MinLengthValidator
36
+ * @override
37
+ *
38
+ * @see Validator#hasErrors
39
+ */
40
+ hasErrors(value, options) {
41
+ if (typeof value === "undefined")
42
+ return;
43
+ return value.length < options.minLength
44
+ ? this.getMessage(options.message || this.message, options.minLength)
45
+ : undefined;
46
+ }
47
+ };
48
+ MinLengthValidator = __decorate([
49
+ validator(ValidationKeys.MIN_LENGTH),
50
+ __metadata("design:paramtypes", [String])
51
+ ], MinLengthValidator);
52
+ export { MinLengthValidator };
53
+
54
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvTWluTGVuZ3RoVmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR3pDOzs7Ozs7Ozs7O0dBVUc7QUFFSSxJQUFNLGtCQUFrQixHQUF4QixNQUFNLGtCQUFtQixTQUFRLFNBQW9DO0lBQzFFLFlBQVksVUFBa0Isc0JBQXNCLENBQUMsVUFBVTtRQUM3RCxLQUFLLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNJLFNBQVMsQ0FDZCxLQUFxQixFQUNyQixPQUFrQztRQUVsQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFdBQVc7WUFBRSxPQUFPO1FBQ3pDLE9BQU8sS0FBSyxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsU0FBUztZQUNyQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQztZQUNyRSxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2hCLENBQUM7Q0FDRixDQUFBO0FBMUJZLGtCQUFrQjtJQUQ5QixTQUFTLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQzs7R0FDeEIsa0JBQWtCLENBMEI5QiIsImZpbGUiOiJ2YWxpZGF0aW9uL1ZhbGlkYXRvcnMvTWluTGVuZ3RoVmFsaWRhdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSBcIi4vVmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBERUZBVUxUX0VSUk9SX01FU1NBR0VTLCBWYWxpZGF0aW9uS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgdmFsaWRhdG9yIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgTWluTGVuZ3RoVmFsaWRhdG9yT3B0aW9ucyB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgTWluaW11bSBMZW5ndGggVmFsaWRhdG9yXG4gKiBAZGVzY3JpcHRpb24gVmFsaWRhdGVzIHN0cmluZ3MgYW5kIEFycmF5cyBvbiB0aGVpciBtaW5pbXVtIGxlbmd0aFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZV0gZGVmYXVsdHMgdG8ge0BsaW5rIERFRkFVTFRfRVJST1JfTUVTU0FHRVMjTUlOX0xFTkdUSH1cbiAqXG4gKiBAY2xhc3MgTWluTGVuZ3RoVmFsaWRhdG9yXG4gKiBAZXh0ZW5kcyBWYWxpZGF0b3JcbiAqXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdG9yc1xuICovXG5AdmFsaWRhdG9yKFZhbGlkYXRpb25LZXlzLk1JTl9MRU5HVEgpXG5leHBvcnQgY2xhc3MgTWluTGVuZ3RoVmFsaWRhdG9yIGV4dGVuZHMgVmFsaWRhdG9yPE1pbkxlbmd0aFZhbGlkYXRvck9wdGlvbnM+IHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nID0gREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5NSU5fTEVOR1RIKSB7XG4gICAgc3VwZXIobWVzc2FnZSwgU3RyaW5nLm5hbWUsIEFycmF5Lm5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgQXJyYXl9IHZhbHVlXG4gICAqIEBwYXJhbSB7TWluTGVuZ3RoVmFsaWRhdG9yT3B0aW9uc30gb3B0aW9uc1xuICAgKlxuICAgKiBAcmV0dXJuIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqXG4gICAqIEBtZW1iZXJPZiBNaW5MZW5ndGhWYWxpZGF0b3JcbiAgICogQG92ZXJyaWRlXG4gICAqXG4gICAqIEBzZWUgVmFsaWRhdG9yI2hhc0Vycm9yc1xuICAgKi9cbiAgcHVibGljIGhhc0Vycm9ycyhcbiAgICB2YWx1ZTogc3RyaW5nIHwgYW55W10sXG4gICAgb3B0aW9uczogTWluTGVuZ3RoVmFsaWRhdG9yT3B0aW9uc1xuICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybjtcbiAgICByZXR1cm4gdmFsdWUubGVuZ3RoIDwgb3B0aW9ucy5taW5MZW5ndGhcbiAgICAgID8gdGhpcy5nZXRNZXNzYWdlKG9wdGlvbnMubWVzc2FnZSB8fCB0aGlzLm1lc3NhZ2UsIG9wdGlvbnMubWluTGVuZ3RoKVxuICAgICAgOiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { Validator } from "./Validator";
2
+ import { MinValidatorOptions } from "./types";
3
+ /**
4
+ * @summary Min Validator
5
+ *
6
+ * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#MIN}
7
+ *
8
+ * @class MinValidator
9
+ * @extends Validator
10
+ *
11
+ * @category Validators
12
+ */
13
+ export declare class MinValidator extends Validator<MinValidatorOptions> {
14
+ constructor(message?: string);
15
+ /**
16
+ * @summary Validates Model
17
+ *
18
+ * @param {string} value
19
+ * @param {MaxValidatorOptions} options
20
+ *
21
+ * @return {string | undefined}
22
+ *
23
+ * @override
24
+ *
25
+ * @see Validator#hasErrors
26
+ */
27
+ hasErrors(value: number | Date | string, options: MinValidatorOptions): string | undefined;
28
+ }
@@ -0,0 +1,59 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Validator } from "./Validator";
11
+ import { DEFAULT_ERROR_MESSAGES, ValidationKeys } from "./constants";
12
+ import { validator } from "./decorators";
13
+ /**
14
+ * @summary Min Validator
15
+ *
16
+ * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#MIN}
17
+ *
18
+ * @class MinValidator
19
+ * @extends Validator
20
+ *
21
+ * @category Validators
22
+ */
23
+ let MinValidator = class MinValidator extends Validator {
24
+ constructor(message = DEFAULT_ERROR_MESSAGES.MIN) {
25
+ super(message, "number", "Date", "string");
26
+ }
27
+ /**
28
+ * @summary Validates Model
29
+ *
30
+ * @param {string} value
31
+ * @param {MaxValidatorOptions} options
32
+ *
33
+ * @return {string | undefined}
34
+ *
35
+ * @override
36
+ *
37
+ * @see Validator#hasErrors
38
+ */
39
+ hasErrors(value, options) {
40
+ if (typeof value === "undefined")
41
+ return;
42
+ let { min } = options;
43
+ if (value instanceof Date && !(min instanceof Date)) {
44
+ min = new Date(min);
45
+ if (Number.isNaN(min.getDate()))
46
+ throw new Error("Invalid Min param defined");
47
+ }
48
+ return value < min
49
+ ? this.getMessage(options.message || this.message, min)
50
+ : undefined;
51
+ }
52
+ };
53
+ MinValidator = __decorate([
54
+ validator(ValidationKeys.MIN),
55
+ __metadata("design:paramtypes", [String])
56
+ ], MinValidator);
57
+ export { MinValidator };
58
+
59
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvTWluVmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR3pDOzs7Ozs7Ozs7R0FTRztBQUVJLElBQU0sWUFBWSxHQUFsQixNQUFNLFlBQWEsU0FBUSxTQUE4QjtJQUM5RCxZQUFZLFVBQWtCLHNCQUFzQixDQUFDLEdBQUc7UUFDdEQsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNJLFNBQVMsQ0FDZCxLQUE2QixFQUM3QixPQUE0QjtRQUU1QixJQUFJLE9BQU8sS0FBSyxLQUFLLFdBQVc7WUFBRSxPQUFPO1FBRXpDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDdEIsSUFBSSxLQUFLLFlBQVksSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLFlBQVksSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNwRCxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEIsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxPQUFPLEtBQUssR0FBRyxHQUFHO1lBQ2hCLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUM7WUFDdkQsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNoQixDQUFDO0NBQ0YsQ0FBQTtBQWpDWSxZQUFZO0lBRHhCLFNBQVMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDOztHQUNqQixZQUFZLENBaUN4QiIsImZpbGUiOiJ2YWxpZGF0aW9uL1ZhbGlkYXRvcnMvTWluVmFsaWRhdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSBcIi4vVmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBERUZBVUxUX0VSUk9SX01FU1NBR0VTLCBWYWxpZGF0aW9uS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgdmFsaWRhdG9yIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgTWluVmFsaWRhdG9yT3B0aW9ucyB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgTWluIFZhbGlkYXRvclxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZV0gZGVmYXVsdHMgdG8ge0BsaW5rIERFRkFVTFRfRVJST1JfTUVTU0FHRVMjTUlOfVxuICpcbiAqIEBjbGFzcyBNaW5WYWxpZGF0b3JcbiAqIEBleHRlbmRzIFZhbGlkYXRvclxuICpcbiAqIEBjYXRlZ29yeSBWYWxpZGF0b3JzXG4gKi9cbkB2YWxpZGF0b3IoVmFsaWRhdGlvbktleXMuTUlOKVxuZXhwb3J0IGNsYXNzIE1pblZhbGlkYXRvciBleHRlbmRzIFZhbGlkYXRvcjxNaW5WYWxpZGF0b3JPcHRpb25zPiB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZyA9IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuTUlOKSB7XG4gICAgc3VwZXIobWVzc2FnZSwgXCJudW1iZXJcIiwgXCJEYXRlXCIsIFwic3RyaW5nXCIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFZhbGlkYXRlcyBNb2RlbFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAgICogQHBhcmFtIHtNYXhWYWxpZGF0b3JPcHRpb25zfSBvcHRpb25zXG4gICAqXG4gICAqIEByZXR1cm4ge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICpcbiAgICogQG92ZXJyaWRlXG4gICAqXG4gICAqIEBzZWUgVmFsaWRhdG9yI2hhc0Vycm9yc1xuICAgKi9cbiAgcHVibGljIGhhc0Vycm9ycyhcbiAgICB2YWx1ZTogbnVtYmVyIHwgRGF0ZSB8IHN0cmluZyxcbiAgICBvcHRpb25zOiBNaW5WYWxpZGF0b3JPcHRpb25zXG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuO1xuXG4gICAgbGV0IHsgbWluIH0gPSBvcHRpb25zO1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUgJiYgIShtaW4gaW5zdGFuY2VvZiBEYXRlKSkge1xuICAgICAgbWluID0gbmV3IERhdGUobWluKTtcbiAgICAgIGlmIChOdW1iZXIuaXNOYU4obWluLmdldERhdGUoKSkpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgTWluIHBhcmFtIGRlZmluZWRcIik7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZSA8IG1pblxuICAgICAgPyB0aGlzLmdldE1lc3NhZ2Uob3B0aW9ucy5tZXNzYWdlIHx8IHRoaXMubWVzc2FnZSwgbWluKVxuICAgICAgOiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==