@decaf-ts/decorator-validation 1.5.2 → 1.5.4

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/README.md +34 -108
  2. package/dist/decorator-validation.js +2 -0
  3. package/dist/decorator-validation.js.LICENSE.txt +14 -0
  4. package/dist/esm/decorator-validation.js +2 -0
  5. package/dist/esm/decorator-validation.js.LICENSE.txt +14 -0
  6. package/lib/esm/index.d.ts +42 -0
  7. package/lib/esm/index.js +44 -0
  8. package/lib/esm/model/Model.d.ts +138 -0
  9. package/lib/esm/model/Model.js +298 -0
  10. package/lib/esm/model/ModelErrorDefinition.d.ts +22 -0
  11. package/lib/esm/model/ModelErrorDefinition.js +54 -0
  12. package/lib/esm/model/Registry.d.ts +59 -0
  13. package/lib/esm/model/Registry.js +75 -0
  14. package/lib/esm/model/constants.d.ts +56 -0
  15. package/lib/esm/model/constants.js +71 -0
  16. package/lib/esm/model/construction.d.ts +29 -0
  17. package/lib/esm/model/construction.js +65 -0
  18. package/lib/esm/model/decorators.d.ts +25 -0
  19. package/lib/esm/model/decorators.js +64 -0
  20. package/lib/esm/model/index.d.ts +9 -0
  21. package/lib/esm/model/index.js +11 -0
  22. package/lib/esm/model/types.d.ts +79 -0
  23. package/lib/esm/model/types.js +3 -0
  24. package/lib/esm/model/utils.d.ts +11 -0
  25. package/lib/esm/model/utils.js +27 -0
  26. package/lib/esm/model/validation.d.ts +14 -0
  27. package/lib/esm/model/validation.js +137 -0
  28. package/lib/esm/utils/constants.d.ts +26 -0
  29. package/lib/esm/utils/constants.js +29 -0
  30. package/lib/esm/utils/dates.d.ts +76 -0
  31. package/lib/esm/utils/dates.js +245 -0
  32. package/lib/esm/utils/decorators.d.ts +2 -0
  33. package/lib/esm/utils/decorators.js +20 -0
  34. package/lib/esm/utils/hashing.d.ts +52 -0
  35. package/lib/esm/utils/hashing.js +101 -0
  36. package/lib/esm/utils/index.d.ts +7 -0
  37. package/lib/esm/utils/index.js +9 -0
  38. package/lib/esm/utils/registry.d.ts +68 -0
  39. package/lib/esm/utils/registry.js +3 -0
  40. package/lib/esm/utils/serialization.d.ts +79 -0
  41. package/lib/esm/utils/serialization.js +90 -0
  42. package/lib/esm/utils/strings.d.ts +25 -0
  43. package/lib/esm/utils/strings.js +33 -0
  44. package/lib/esm/validation/Validation.d.ts +51 -0
  45. package/lib/esm/validation/Validation.js +73 -0
  46. package/lib/esm/validation/Validators/DateValidator.d.ts +28 -0
  47. package/lib/esm/validation/Validators/DateValidator.js +56 -0
  48. package/lib/esm/validation/Validators/EmailValidator.d.ts +28 -0
  49. package/lib/esm/validation/Validators/EmailValidator.js +52 -0
  50. package/lib/esm/validation/Validators/ListValidator.d.ts +28 -0
  51. package/lib/esm/validation/Validators/ListValidator.js +69 -0
  52. package/lib/esm/validation/Validators/MaxLengthValidator.d.ts +29 -0
  53. package/lib/esm/validation/Validators/MaxLengthValidator.js +54 -0
  54. package/lib/esm/validation/Validators/MaxValidator.d.ts +28 -0
  55. package/lib/esm/validation/Validators/MaxValidator.js +59 -0
  56. package/lib/esm/validation/Validators/MinLengthValidator.d.ts +29 -0
  57. package/lib/esm/validation/Validators/MinLengthValidator.js +54 -0
  58. package/lib/esm/validation/Validators/MinValidator.d.ts +28 -0
  59. package/lib/esm/validation/Validators/MinValidator.js +59 -0
  60. package/lib/esm/validation/Validators/PasswordValidator.d.ts +28 -0
  61. package/lib/esm/validation/Validators/PasswordValidator.js +52 -0
  62. package/lib/esm/validation/Validators/PatternValidator.d.ts +37 -0
  63. package/lib/esm/validation/Validators/PatternValidator.js +72 -0
  64. package/lib/esm/validation/Validators/RequiredValidator.d.ts +28 -0
  65. package/lib/esm/validation/Validators/RequiredValidator.js +59 -0
  66. package/lib/esm/validation/Validators/StepValidator.d.ts +29 -0
  67. package/lib/esm/validation/Validators/StepValidator.js +54 -0
  68. package/lib/esm/validation/Validators/TypeValidator.d.ts +25 -0
  69. package/lib/esm/validation/Validators/TypeValidator.js +62 -0
  70. package/lib/esm/validation/Validators/URLValidator.d.ts +27 -0
  71. package/lib/esm/validation/Validators/URLValidator.js +51 -0
  72. package/lib/esm/validation/Validators/Validator.d.ts +41 -0
  73. package/lib/esm/validation/Validators/Validator.js +49 -0
  74. package/lib/esm/validation/Validators/ValidatorRegistry.d.ts +47 -0
  75. package/lib/esm/validation/Validators/ValidatorRegistry.js +82 -0
  76. package/lib/esm/validation/Validators/constants.d.ts +96 -0
  77. package/lib/esm/validation/Validators/constants.js +136 -0
  78. package/lib/esm/validation/Validators/decorators.d.ts +12 -0
  79. package/lib/esm/validation/Validators/decorators.js +27 -0
  80. package/lib/esm/validation/Validators/index.d.ts +52 -0
  81. package/lib/esm/validation/Validators/index.js +54 -0
  82. package/lib/esm/validation/Validators/types.d.ts +88 -0
  83. package/lib/esm/validation/Validators/types.js +3 -0
  84. package/lib/esm/validation/decorators.d.ts +178 -0
  85. package/lib/esm/validation/decorators.js +290 -0
  86. package/lib/esm/validation/index.d.ts +4 -0
  87. package/lib/esm/validation/index.js +6 -0
  88. package/lib/esm/validation/types.d.ts +46 -0
  89. package/lib/esm/validation/types.js +3 -0
  90. package/lib/index.cjs +61 -0
  91. package/lib/index.d.ts +42 -0
  92. package/lib/model/Model.cjs +302 -0
  93. package/lib/model/Model.d.ts +138 -0
  94. package/lib/model/ModelErrorDefinition.cjs +58 -0
  95. package/lib/model/ModelErrorDefinition.d.ts +22 -0
  96. package/lib/model/Registry.cjs +80 -0
  97. package/lib/model/Registry.d.ts +59 -0
  98. package/lib/model/constants.cjs +74 -0
  99. package/lib/model/constants.d.ts +56 -0
  100. package/lib/model/construction.cjs +70 -0
  101. package/lib/model/construction.d.ts +29 -0
  102. package/lib/model/decorators.cjs +69 -0
  103. package/lib/model/decorators.d.ts +25 -0
  104. package/lib/model/index.cjs +27 -0
  105. package/lib/model/index.d.ts +9 -0
  106. package/lib/model/types.cjs +4 -0
  107. package/lib/model/types.d.ts +79 -0
  108. package/lib/model/utils.cjs +31 -0
  109. package/lib/model/utils.d.ts +11 -0
  110. package/lib/model/validation.cjs +140 -0
  111. package/lib/model/validation.d.ts +14 -0
  112. package/lib/utils/constants.cjs +32 -0
  113. package/lib/utils/constants.d.ts +26 -0
  114. package/lib/utils/dates.cjs +253 -0
  115. package/lib/utils/dates.d.ts +76 -0
  116. package/lib/utils/decorators.cjs +24 -0
  117. package/lib/utils/decorators.d.ts +2 -0
  118. package/lib/utils/hashing.cjs +108 -0
  119. package/lib/utils/hashing.d.ts +52 -0
  120. package/lib/utils/index.cjs +25 -0
  121. package/lib/utils/index.d.ts +7 -0
  122. package/lib/utils/registry.cjs +4 -0
  123. package/lib/utils/registry.d.ts +68 -0
  124. package/lib/utils/serialization.cjs +95 -0
  125. package/lib/utils/serialization.d.ts +79 -0
  126. package/lib/utils/strings.cjs +37 -0
  127. package/lib/utils/strings.d.ts +25 -0
  128. package/lib/validation/Validation.cjs +77 -0
  129. package/lib/validation/Validation.d.ts +51 -0
  130. package/lib/validation/Validators/DateValidator.cjs +59 -0
  131. package/lib/validation/Validators/DateValidator.d.ts +28 -0
  132. package/lib/validation/Validators/EmailValidator.cjs +55 -0
  133. package/lib/validation/Validators/EmailValidator.d.ts +28 -0
  134. package/lib/validation/Validators/ListValidator.cjs +72 -0
  135. package/lib/validation/Validators/ListValidator.d.ts +28 -0
  136. package/lib/validation/Validators/MaxLengthValidator.cjs +57 -0
  137. package/lib/validation/Validators/MaxLengthValidator.d.ts +29 -0
  138. package/lib/validation/Validators/MaxValidator.cjs +62 -0
  139. package/lib/validation/Validators/MaxValidator.d.ts +28 -0
  140. package/lib/validation/Validators/MinLengthValidator.cjs +57 -0
  141. package/lib/validation/Validators/MinLengthValidator.d.ts +29 -0
  142. package/lib/validation/Validators/MinValidator.cjs +62 -0
  143. package/lib/validation/Validators/MinValidator.d.ts +28 -0
  144. package/lib/validation/Validators/PasswordValidator.cjs +55 -0
  145. package/lib/validation/Validators/PasswordValidator.d.ts +28 -0
  146. package/lib/validation/Validators/PatternValidator.cjs +75 -0
  147. package/lib/validation/Validators/PatternValidator.d.ts +37 -0
  148. package/lib/validation/Validators/RequiredValidator.cjs +62 -0
  149. package/lib/validation/Validators/RequiredValidator.d.ts +28 -0
  150. package/lib/validation/Validators/StepValidator.cjs +57 -0
  151. package/lib/validation/Validators/StepValidator.d.ts +29 -0
  152. package/lib/validation/Validators/TypeValidator.cjs +65 -0
  153. package/lib/validation/Validators/TypeValidator.d.ts +25 -0
  154. package/lib/validation/Validators/URLValidator.cjs +54 -0
  155. package/lib/validation/Validators/URLValidator.d.ts +27 -0
  156. package/lib/validation/Validators/Validator.cjs +53 -0
  157. package/lib/validation/Validators/Validator.d.ts +41 -0
  158. package/lib/validation/Validators/ValidatorRegistry.cjs +87 -0
  159. package/lib/validation/Validators/ValidatorRegistry.d.ts +47 -0
  160. package/lib/validation/Validators/constants.cjs +139 -0
  161. package/lib/validation/Validators/constants.d.ts +96 -0
  162. package/lib/validation/Validators/decorators.cjs +30 -0
  163. package/lib/validation/Validators/decorators.d.ts +12 -0
  164. package/lib/validation/Validators/index.cjs +71 -0
  165. package/lib/validation/Validators/index.d.ts +52 -0
  166. package/lib/validation/Validators/types.cjs +4 -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 { PatternValidator } from "./PatternValidator";
2
+ import { PatternValidatorOptions } from "./types";
3
+ /**
4
+ * @summary Handles Password Validation
5
+ *
6
+ * @param {string} [errorMessage] defaults to {@link DEFAULT_ERROR_MESSAGES#PASSWORD}
7
+ *
8
+ * @class PasswordValidator
9
+ * @extends PatternValidator
10
+ *
11
+ * @category Validators
12
+ */
13
+ export declare class PasswordValidator 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 PatternValidator#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 { PatternValidator } from "./PatternValidator";
11
+ import { DEFAULT_ERROR_MESSAGES, ValidationKeys } from "./constants";
12
+ import { validator } from "./decorators";
13
+ /**
14
+ * @summary Handles Password Validation
15
+ *
16
+ * @param {string} [errorMessage] defaults to {@link DEFAULT_ERROR_MESSAGES#PASSWORD}
17
+ *
18
+ * @class PasswordValidator
19
+ * @extends PatternValidator
20
+ *
21
+ * @category Validators
22
+ */
23
+ let PasswordValidator = class PasswordValidator extends PatternValidator {
24
+ constructor(message = DEFAULT_ERROR_MESSAGES.PASSWORD) {
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 PatternValidator#hasErrors
38
+ */
39
+ hasErrors(value, options = {}) {
40
+ return super.hasErrors(value, {
41
+ ...options,
42
+ message: options.message || this.message,
43
+ });
44
+ }
45
+ };
46
+ PasswordValidator = __decorate([
47
+ validator(ValidationKeys.PASSWORD),
48
+ __metadata("design:paramtypes", [Object])
49
+ ], PasswordValidator);
50
+ export { PasswordValidator };
51
+
52
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvUGFzc3dvcmRWYWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR3pDOzs7Ozs7Ozs7R0FTRztBQUVJLElBQU0saUJBQWlCLEdBQXZCLE1BQU0saUJBQWtCLFNBQVEsZ0JBQWdCO0lBQ3JELFlBQVksT0FBTyxHQUFHLHNCQUFzQixDQUFDLFFBQVE7UUFDbkQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNJLFNBQVMsQ0FDZCxLQUFhLEVBQ2IsVUFBbUMsRUFBRTtRQUVyQyxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFO1lBQzVCLEdBQUcsT0FBTztZQUNWLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPO1NBQ3pDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRixDQUFBO0FBMUJZLGlCQUFpQjtJQUQ3QixTQUFTLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQzs7R0FDdEIsaUJBQWlCLENBMEI3QiIsImZpbGUiOiJ2YWxpZGF0aW9uL1ZhbGlkYXRvcnMvUGFzc3dvcmRWYWxpZGF0b3IuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYXR0ZXJuVmFsaWRhdG9yIH0gZnJvbSBcIi4vUGF0dGVyblZhbGlkYXRvclwiO1xuaW1wb3J0IHsgREVGQVVMVF9FUlJPUl9NRVNTQUdFUywgVmFsaWRhdGlvbktleXMgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IHZhbGlkYXRvciB9IGZyb20gXCIuL2RlY29yYXRvcnNcIjtcbmltcG9ydCB7IFBhdHRlcm5WYWxpZGF0b3JPcHRpb25zIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBIYW5kbGVzIFBhc3N3b3JkIFZhbGlkYXRpb25cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gW2Vycm9yTWVzc2FnZV0gZGVmYXVsdHMgdG8ge0BsaW5rIERFRkFVTFRfRVJST1JfTUVTU0FHRVMjUEFTU1dPUkR9XG4gKlxuICogQGNsYXNzIFBhc3N3b3JkVmFsaWRhdG9yXG4gKiBAZXh0ZW5kcyBQYXR0ZXJuVmFsaWRhdG9yXG4gKlxuICogQGNhdGVnb3J5IFZhbGlkYXRvcnNcbiAqL1xuQHZhbGlkYXRvcihWYWxpZGF0aW9uS2V5cy5QQVNTV09SRClcbmV4cG9ydCBjbGFzcyBQYXNzd29yZFZhbGlkYXRvciBleHRlbmRzIFBhdHRlcm5WYWxpZGF0b3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlID0gREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5QQVNTV09SRCkge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFZhbGlkYXRlcyBhIG1vZGVsXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICAgKiBAcGFyYW0ge1BhdHRlcm5WYWxpZGF0b3JPcHRpb25zfSBbb3B0aW9ucz17fV1cbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKlxuICAgKiBAb3ZlcnJpZGVcbiAgICpcbiAgICogQHNlZSBQYXR0ZXJuVmFsaWRhdG9yI2hhc0Vycm9yc1xuICAgKi9cbiAgcHVibGljIGhhc0Vycm9ycyhcbiAgICB2YWx1ZTogc3RyaW5nLFxuICAgIG9wdGlvbnM6IFBhdHRlcm5WYWxpZGF0b3JPcHRpb25zID0ge31cbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gc3VwZXIuaGFzRXJyb3JzKHZhbHVlLCB7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgbWVzc2FnZTogb3B0aW9ucy5tZXNzYWdlIHx8IHRoaXMubWVzc2FnZSxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,37 @@
1
+ import { Validator } from "./Validator";
2
+ import { PatternValidatorOptions } from "./types";
3
+ export declare const regexpParser: RegExp;
4
+ /**
5
+ * @summary Pattern Validator
6
+ *
7
+ * @param {string} [key] defaults to {@link ValidationKeys#PATTERN}
8
+ * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#PATTERN}
9
+ *
10
+ * @class PatternValidator
11
+ * @extends Validator
12
+ *
13
+ * @category Validators
14
+ */
15
+ export declare class PatternValidator extends Validator<PatternValidatorOptions> {
16
+ constructor(message?: string);
17
+ /**
18
+ * @summary parses and validates a pattern
19
+ *
20
+ * @param {string} pattern
21
+ * @private
22
+ */
23
+ private getPattern;
24
+ /**
25
+ * @summary Validates a Model
26
+ *
27
+ * @param {string} value
28
+ * @param {PatternValidatorOptions} options
29
+ *
30
+ * @return {string | undefined}
31
+ *
32
+ * @override
33
+ *
34
+ * @see Validator#hasErrors
35
+ */
36
+ hasErrors(value: string, options: PatternValidatorOptions): string | undefined;
37
+ }
@@ -0,0 +1,72 @@
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
+ export const regexpParser = new RegExp("^/(.+)/([gimus]*)$");
14
+ /**
15
+ * @summary Pattern Validator
16
+ *
17
+ * @param {string} [key] defaults to {@link ValidationKeys#PATTERN}
18
+ * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#PATTERN}
19
+ *
20
+ * @class PatternValidator
21
+ * @extends Validator
22
+ *
23
+ * @category Validators
24
+ */
25
+ let PatternValidator = class PatternValidator extends Validator {
26
+ constructor(message = DEFAULT_ERROR_MESSAGES.PATTERN) {
27
+ super(message, "string");
28
+ }
29
+ /**
30
+ * @summary parses and validates a pattern
31
+ *
32
+ * @param {string} pattern
33
+ * @private
34
+ */
35
+ getPattern(pattern) {
36
+ if (!regexpParser.test(pattern))
37
+ return new RegExp(pattern);
38
+ const match = pattern.match(regexpParser);
39
+ return new RegExp(match[1], match[2]);
40
+ }
41
+ /**
42
+ * @summary Validates a Model
43
+ *
44
+ * @param {string} value
45
+ * @param {PatternValidatorOptions} options
46
+ *
47
+ * @return {string | undefined}
48
+ *
49
+ * @override
50
+ *
51
+ * @see Validator#hasErrors
52
+ */
53
+ hasErrors(value, options) {
54
+ if (!value)
55
+ return;
56
+ let { pattern } = options;
57
+ if (!pattern)
58
+ throw new Error("Missing Pattern");
59
+ pattern = typeof pattern === "string" ? this.getPattern(pattern) : pattern;
60
+ pattern.lastIndex = 0; // resets pattern position for repeat validation requests
61
+ return !pattern.test(value)
62
+ ? this.getMessage(options.message || this.message)
63
+ : undefined;
64
+ }
65
+ };
66
+ PatternValidator = __decorate([
67
+ validator(ValidationKeys.PATTERN),
68
+ __metadata("design:paramtypes", [String])
69
+ ], PatternValidator);
70
+ export { PatternValidator };
71
+
72
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvUGF0dGVyblZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUd6QyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQVcsSUFBSSxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQUVyRTs7Ozs7Ozs7OztHQVVHO0FBRUksSUFBTSxnQkFBZ0IsR0FBdEIsTUFBTSxnQkFBaUIsU0FBUSxTQUFrQztJQUN0RSxZQUFZLFVBQWtCLHNCQUFzQixDQUFDLE9BQU87UUFDMUQsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxVQUFVLENBQUMsT0FBZTtRQUNoQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7WUFBRSxPQUFPLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVELE1BQU0sS0FBSyxHQUFRLE9BQU8sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDL0MsT0FBTyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0ksU0FBUyxDQUNkLEtBQWEsRUFDYixPQUFnQztRQUVoQyxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU87UUFFbkIsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUMxQixJQUFJLENBQUMsT0FBTztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNqRCxPQUFPLEdBQUcsT0FBTyxPQUFPLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDM0UsT0FBTyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyx5REFBeUQ7UUFDaEYsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ3pCLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUNsRCxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2hCLENBQUM7Q0FDRixDQUFBO0FBM0NZLGdCQUFnQjtJQUQ1QixTQUFTLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQzs7R0FDckIsZ0JBQWdCLENBMkM1QiIsImZpbGUiOiJ2YWxpZGF0aW9uL1ZhbGlkYXRvcnMvUGF0dGVyblZhbGlkYXRvci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbGlkYXRvciB9IGZyb20gXCIuL1ZhbGlkYXRvclwiO1xuaW1wb3J0IHsgREVGQVVMVF9FUlJPUl9NRVNTQUdFUywgVmFsaWRhdGlvbktleXMgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IHZhbGlkYXRvciB9IGZyb20gXCIuL2RlY29yYXRvcnNcIjtcbmltcG9ydCB7IFBhdHRlcm5WYWxpZGF0b3JPcHRpb25zIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuZXhwb3J0IGNvbnN0IHJlZ2V4cFBhcnNlcjogUmVnRXhwID0gbmV3IFJlZ0V4cChcIl4vKC4rKS8oW2dpbXVzXSopJFwiKTtcblxuLyoqXG4gKiBAc3VtbWFyeSBQYXR0ZXJuIFZhbGlkYXRvclxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBba2V5XSBkZWZhdWx0cyB0byB7QGxpbmsgVmFsaWRhdGlvbktleXMjUEFUVEVSTn1cbiAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZV0gZGVmYXVsdHMgdG8ge0BsaW5rIERFRkFVTFRfRVJST1JfTUVTU0FHRVMjUEFUVEVSTn1cbiAqXG4gKiBAY2xhc3MgUGF0dGVyblZhbGlkYXRvclxuICogQGV4dGVuZHMgVmFsaWRhdG9yXG4gKlxuICogQGNhdGVnb3J5IFZhbGlkYXRvcnNcbiAqL1xuQHZhbGlkYXRvcihWYWxpZGF0aW9uS2V5cy5QQVRURVJOKVxuZXhwb3J0IGNsYXNzIFBhdHRlcm5WYWxpZGF0b3IgZXh0ZW5kcyBWYWxpZGF0b3I8UGF0dGVyblZhbGlkYXRvck9wdGlvbnM+IHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nID0gREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5QQVRURVJOKSB7XG4gICAgc3VwZXIobWVzc2FnZSwgXCJzdHJpbmdcIik7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgcGFyc2VzIGFuZCB2YWxpZGF0ZXMgYSBwYXR0ZXJuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXR0ZXJuXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGdldFBhdHRlcm4ocGF0dGVybjogc3RyaW5nKTogUmVnRXhwIHtcbiAgICBpZiAoIXJlZ2V4cFBhcnNlci50ZXN0KHBhdHRlcm4pKSByZXR1cm4gbmV3IFJlZ0V4cChwYXR0ZXJuKTtcbiAgICBjb25zdCBtYXRjaDogYW55ID0gcGF0dGVybi5tYXRjaChyZWdleHBQYXJzZXIpO1xuICAgIHJldHVybiBuZXcgUmVnRXhwKG1hdGNoWzFdLCBtYXRjaFsyXSk7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgVmFsaWRhdGVzIGEgTW9kZWxcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gICAqIEBwYXJhbSB7UGF0dGVyblZhbGlkYXRvck9wdGlvbnN9IG9wdGlvbnNcbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKlxuICAgKiBAb3ZlcnJpZGVcbiAgICpcbiAgICogQHNlZSBWYWxpZGF0b3IjaGFzRXJyb3JzXG4gICAqL1xuICBwdWJsaWMgaGFzRXJyb3JzKFxuICAgIHZhbHVlOiBzdHJpbmcsXG4gICAgb3B0aW9uczogUGF0dGVyblZhbGlkYXRvck9wdGlvbnNcbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm47XG5cbiAgICBsZXQgeyBwYXR0ZXJuIH0gPSBvcHRpb25zO1xuICAgIGlmICghcGF0dGVybikgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyBQYXR0ZXJuXCIpO1xuICAgIHBhdHRlcm4gPSB0eXBlb2YgcGF0dGVybiA9PT0gXCJzdHJpbmdcIiA/IHRoaXMuZ2V0UGF0dGVybihwYXR0ZXJuKSA6IHBhdHRlcm47XG4gICAgcGF0dGVybi5sYXN0SW5kZXggPSAwOyAvLyByZXNldHMgcGF0dGVybiBwb3NpdGlvbiBmb3IgcmVwZWF0IHZhbGlkYXRpb24gcmVxdWVzdHNcbiAgICByZXR1cm4gIXBhdHRlcm4udGVzdCh2YWx1ZSlcbiAgICAgID8gdGhpcy5nZXRNZXNzYWdlKG9wdGlvbnMubWVzc2FnZSB8fCB0aGlzLm1lc3NhZ2UpXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgfVxufVxuIl19
@@ -0,0 +1,28 @@
1
+ import { Validator } from "./Validator";
2
+ import { ValidatorOptions } from "./types";
3
+ /**
4
+ * @summary Required Validator
5
+ *
6
+ * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#REQUIRED}
7
+ *
8
+ * @class RequiredValidator
9
+ * @extends Validator
10
+ *
11
+ * @category Validators
12
+ */
13
+ export declare class RequiredValidator extends Validator {
14
+ constructor(message?: string);
15
+ /**
16
+ * @summary Validates a model
17
+ *
18
+ * @param {string} value
19
+ * @param {ValidatorOptions} [options={}]
20
+ *
21
+ * @return {string | undefined}
22
+ *
23
+ * @override
24
+ *
25
+ * @see Validator#hasErrors
26
+ */
27
+ hasErrors(value: any, options?: ValidatorOptions): 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 Required Validator
15
+ *
16
+ * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#REQUIRED}
17
+ *
18
+ * @class RequiredValidator
19
+ * @extends Validator
20
+ *
21
+ * @category Validators
22
+ */
23
+ let RequiredValidator = class RequiredValidator extends Validator {
24
+ constructor(message = DEFAULT_ERROR_MESSAGES.REQUIRED) {
25
+ super(message);
26
+ }
27
+ /**
28
+ * @summary Validates a model
29
+ *
30
+ * @param {string} value
31
+ * @param {ValidatorOptions} [options={}]
32
+ *
33
+ * @return {string | undefined}
34
+ *
35
+ * @override
36
+ *
37
+ * @see Validator#hasErrors
38
+ */
39
+ hasErrors(value, options = {}) {
40
+ switch (typeof value) {
41
+ case "boolean":
42
+ case "number":
43
+ return typeof value === "undefined"
44
+ ? this.getMessage(options.message || this.message)
45
+ : undefined;
46
+ default:
47
+ return !value
48
+ ? this.getMessage(options.message || this.message)
49
+ : undefined;
50
+ }
51
+ }
52
+ };
53
+ RequiredValidator = __decorate([
54
+ validator(ValidationKeys.REQUIRED),
55
+ __metadata("design:paramtypes", [String])
56
+ ], RequiredValidator);
57
+ export { RequiredValidator };
58
+
59
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvUmVxdWlyZWRWYWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHekM7Ozs7Ozs7OztHQVNHO0FBRUksSUFBTSxpQkFBaUIsR0FBdkIsTUFBTSxpQkFBa0IsU0FBUSxTQUFTO0lBQzlDLFlBQVksVUFBa0Isc0JBQXNCLENBQUMsUUFBUTtRQUMzRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0ksU0FBUyxDQUNkLEtBQVUsRUFDVixVQUE0QixFQUFFO1FBRTlCLFFBQVEsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNyQixLQUFLLFNBQVMsQ0FBQztZQUNmLEtBQUssUUFBUTtnQkFDWCxPQUFPLE9BQU8sS0FBSyxLQUFLLFdBQVc7b0JBQ2pDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQztvQkFDbEQsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNoQjtnQkFDRSxPQUFPLENBQUMsS0FBSztvQkFDWCxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUM7b0JBQ2xELENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUM7Q0FDRixDQUFBO0FBakNZLGlCQUFpQjtJQUQ3QixTQUFTLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQzs7R0FDdEIsaUJBQWlCLENBaUM3QiIsImZpbGUiOiJ2YWxpZGF0aW9uL1ZhbGlkYXRvcnMvUmVxdWlyZWRWYWxpZGF0b3IuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0b3IgfSBmcm9tIFwiLi9WYWxpZGF0b3JcIjtcbmltcG9ydCB7IERFRkFVTFRfRVJST1JfTUVTU0FHRVMsIFZhbGlkYXRpb25LZXlzIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyB2YWxpZGF0b3IgfSBmcm9tIFwiLi9kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBWYWxpZGF0b3JPcHRpb25zIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBSZXF1aXJlZCBWYWxpZGF0b3JcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2VdIGRlZmF1bHRzIHRvIHtAbGluayBERUZBVUxUX0VSUk9SX01FU1NBR0VTI1JFUVVJUkVEfVxuICpcbiAqIEBjbGFzcyBSZXF1aXJlZFZhbGlkYXRvclxuICogQGV4dGVuZHMgVmFsaWRhdG9yXG4gKlxuICogQGNhdGVnb3J5IFZhbGlkYXRvcnNcbiAqL1xuQHZhbGlkYXRvcihWYWxpZGF0aW9uS2V5cy5SRVFVSVJFRClcbmV4cG9ydCBjbGFzcyBSZXF1aXJlZFZhbGlkYXRvciBleHRlbmRzIFZhbGlkYXRvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZyA9IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuUkVRVUlSRUQpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBWYWxpZGF0ZXMgYSBtb2RlbFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAgICogQHBhcmFtIHtWYWxpZGF0b3JPcHRpb25zfSBbb3B0aW9ucz17fV1cbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKlxuICAgKiBAb3ZlcnJpZGVcbiAgICpcbiAgICogQHNlZSBWYWxpZGF0b3IjaGFzRXJyb3JzXG4gICAqL1xuICBwdWJsaWMgaGFzRXJyb3JzKFxuICAgIHZhbHVlOiBhbnksXG4gICAgb3B0aW9uczogVmFsaWRhdG9yT3B0aW9ucyA9IHt9XG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHtcbiAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICBjYXNlIFwibnVtYmVyXCI6XG4gICAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwidW5kZWZpbmVkXCJcbiAgICAgICAgICA/IHRoaXMuZ2V0TWVzc2FnZShvcHRpb25zLm1lc3NhZ2UgfHwgdGhpcy5tZXNzYWdlKVxuICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICF2YWx1ZVxuICAgICAgICAgID8gdGhpcy5nZXRNZXNzYWdlKG9wdGlvbnMubWVzc2FnZSB8fCB0aGlzLm1lc3NhZ2UpXG4gICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,29 @@
1
+ import { Validator } from "./Validator";
2
+ import { StepValidatorOptions } from "./types";
3
+ /**
4
+ * @summary Step Validator
5
+ *
6
+ * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#STEP}
7
+ *
8
+ * @class StepValidator
9
+ * @extends Validator
10
+ *
11
+ * @category Validators
12
+ */
13
+ export declare class StepValidator extends Validator<StepValidatorOptions> {
14
+ constructor(message?: string);
15
+ /**
16
+ * @summary Validates a model
17
+ *
18
+ * @param {string} value
19
+ * @param {number} step
20
+ * @param {StepValidatorOptions} options
21
+ *
22
+ * @return {string | undefined}
23
+ *
24
+ * @override
25
+ *
26
+ * @see Validator#hasErrors
27
+ */
28
+ hasErrors(value: number | string, options: StepValidatorOptions): 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 Step Validator
15
+ *
16
+ * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#STEP}
17
+ *
18
+ * @class StepValidator
19
+ * @extends Validator
20
+ *
21
+ * @category Validators
22
+ */
23
+ let StepValidator = class StepValidator extends Validator {
24
+ constructor(message = DEFAULT_ERROR_MESSAGES.STEP) {
25
+ super(message, "number", "string");
26
+ }
27
+ /**
28
+ * @summary Validates a model
29
+ *
30
+ * @param {string} value
31
+ * @param {number} step
32
+ * @param {StepValidatorOptions} 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 Number(value) % Number(options.step) !== 0
44
+ ? this.getMessage(options.message || this.message, options.step)
45
+ : undefined;
46
+ }
47
+ };
48
+ StepValidator = __decorate([
49
+ validator(ValidationKeys.STEP),
50
+ __metadata("design:paramtypes", [String])
51
+ ], StepValidator);
52
+ export { StepValidator };
53
+
54
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvU3RlcFZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUd6Qzs7Ozs7Ozs7O0dBU0c7QUFFSSxJQUFNLGFBQWEsR0FBbkIsTUFBTSxhQUFjLFNBQVEsU0FBK0I7SUFDaEUsWUFBWSxVQUFrQixzQkFBc0IsQ0FBQyxJQUFJO1FBQ3ZELEtBQUssQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSSxTQUFTLENBQ2QsS0FBc0IsRUFDdEIsT0FBNkI7UUFFN0IsSUFBSSxPQUFPLEtBQUssS0FBSyxXQUFXO1lBQUUsT0FBTztRQUN6QyxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDL0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDaEUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNoQixDQUFDO0NBQ0YsQ0FBQTtBQTNCWSxhQUFhO0lBRHpCLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDOztHQUNsQixhQUFhLENBMkJ6QiIsImZpbGUiOiJ2YWxpZGF0aW9uL1ZhbGlkYXRvcnMvU3RlcFZhbGlkYXRvci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbGlkYXRvciB9IGZyb20gXCIuL1ZhbGlkYXRvclwiO1xuaW1wb3J0IHsgREVGQVVMVF9FUlJPUl9NRVNTQUdFUywgVmFsaWRhdGlvbktleXMgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IHZhbGlkYXRvciB9IGZyb20gXCIuL2RlY29yYXRvcnNcIjtcbmltcG9ydCB7IFN0ZXBWYWxpZGF0b3JPcHRpb25zIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBTdGVwIFZhbGlkYXRvclxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZV0gZGVmYXVsdHMgdG8ge0BsaW5rIERFRkFVTFRfRVJST1JfTUVTU0FHRVMjU1RFUH1cbiAqXG4gKiBAY2xhc3MgU3RlcFZhbGlkYXRvclxuICogQGV4dGVuZHMgVmFsaWRhdG9yXG4gKlxuICogQGNhdGVnb3J5IFZhbGlkYXRvcnNcbiAqL1xuQHZhbGlkYXRvcihWYWxpZGF0aW9uS2V5cy5TVEVQKVxuZXhwb3J0IGNsYXNzIFN0ZXBWYWxpZGF0b3IgZXh0ZW5kcyBWYWxpZGF0b3I8U3RlcFZhbGlkYXRvck9wdGlvbnM+IHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nID0gREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5TVEVQKSB7XG4gICAgc3VwZXIobWVzc2FnZSwgXCJudW1iZXJcIiwgXCJzdHJpbmdcIik7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgVmFsaWRhdGVzIGEgbW9kZWxcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBzdGVwXG4gICAqIEBwYXJhbSB7U3RlcFZhbGlkYXRvck9wdGlvbnN9IG9wdGlvbnNcbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKlxuICAgKiBAb3ZlcnJpZGVcbiAgICpcbiAgICogQHNlZSBWYWxpZGF0b3IjaGFzRXJyb3JzXG4gICAqL1xuICBwdWJsaWMgaGFzRXJyb3JzKFxuICAgIHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsXG4gICAgb3B0aW9uczogU3RlcFZhbGlkYXRvck9wdGlvbnNcbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm47XG4gICAgcmV0dXJuIE51bWJlcih2YWx1ZSkgJSBOdW1iZXIob3B0aW9ucy5zdGVwKSAhPT0gMFxuICAgICAgPyB0aGlzLmdldE1lc3NhZ2Uob3B0aW9ucy5tZXNzYWdlIHx8IHRoaXMubWVzc2FnZSwgb3B0aW9ucy5zdGVwKVxuICAgICAgOiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,25 @@
1
+ import { Validator } from "./Validator";
2
+ import { TypeValidatorOptions } from "./types";
3
+ /**
4
+ * @summary Required Validator
5
+ *
6
+ * @class RequiredValidator
7
+ * @extends Validator
8
+ *
9
+ * @category Validators
10
+ */
11
+ export declare class TypeValidator extends Validator<TypeValidatorOptions> {
12
+ constructor(message?: string);
13
+ /**
14
+ * @summary Validates a model
15
+ * @param {string} value
16
+ * @param {TypeValidatorOptions} options
17
+ *
18
+ * @return {string | undefined}
19
+ *
20
+ * @override
21
+ *
22
+ * @see Validator#hasErrors
23
+ */
24
+ hasErrors(value: any, options: TypeValidatorOptions): string | undefined;
25
+ }
@@ -0,0 +1,62 @@
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
+ import { Validation } from "../Validation";
14
+ import { ModelKeys } from "../../utils/constants";
15
+ import { Reflection } from "@decaf-ts/reflection";
16
+ /**
17
+ * @summary Required Validator
18
+ *
19
+ * @class RequiredValidator
20
+ * @extends Validator
21
+ *
22
+ * @category Validators
23
+ */
24
+ let TypeValidator = class TypeValidator extends Validator {
25
+ constructor(message = DEFAULT_ERROR_MESSAGES.TYPE) {
26
+ super(message);
27
+ }
28
+ /**
29
+ * @summary Validates a model
30
+ * @param {string} value
31
+ * @param {TypeValidatorOptions} 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; // Don't try and enforce type if undefined
42
+ const { types, message } = options;
43
+ if (!Reflection.evaluateDesignTypes(value, types))
44
+ return this.getMessage(message || this.message, typeof types === "string"
45
+ ? types
46
+ : Array.isArray(types)
47
+ ? types.join(", ")
48
+ : types.name, typeof value);
49
+ }
50
+ };
51
+ TypeValidator = __decorate([
52
+ validator(ValidationKeys.TYPE),
53
+ __metadata("design:paramtypes", [String])
54
+ ], TypeValidator);
55
+ export { TypeValidator };
56
+ Validation.register({
57
+ validator: TypeValidator,
58
+ validationKey: ModelKeys.TYPE,
59
+ save: false,
60
+ });
61
+
62
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvVHlwZVZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbEQ7Ozs7Ozs7R0FPRztBQUVJLElBQU0sYUFBYSxHQUFuQixNQUFNLGFBQWMsU0FBUSxTQUErQjtJQUNoRSxZQUFZLFVBQWtCLHNCQUFzQixDQUFDLElBQUk7UUFDdkQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksU0FBUyxDQUNkLEtBQVUsRUFDVixPQUE2QjtRQUU3QixJQUFJLEtBQUssS0FBSyxTQUFTO1lBQUUsT0FBTyxDQUFDLDBDQUEwQztRQUMzRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUM7WUFDL0MsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUNwQixPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sRUFDdkIsT0FBTyxLQUFLLEtBQUssUUFBUTtnQkFDdkIsQ0FBQyxDQUFDLEtBQUs7Z0JBQ1AsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO29CQUNwQixDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7b0JBQ2xCLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUNoQixPQUFPLEtBQUssQ0FDYixDQUFDO0lBQ04sQ0FBQztDQUNGLENBQUE7QUFqQ1ksYUFBYTtJQUR6QixTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQzs7R0FDbEIsYUFBYSxDQWlDekI7O0FBRUQsVUFBVSxDQUFDLFFBQVEsQ0FBQztJQUNsQixTQUFTLEVBQUUsYUFBYTtJQUN4QixhQUFhLEVBQUUsU0FBUyxDQUFDLElBQUk7SUFDN0IsSUFBSSxFQUFFLEtBQUs7Q0FDVyxDQUFDLENBQUMiLCJmaWxlIjoidmFsaWRhdGlvbi9WYWxpZGF0b3JzL1R5cGVWYWxpZGF0b3IuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0b3IgfSBmcm9tIFwiLi9WYWxpZGF0b3JcIjtcbmltcG9ydCB7IERFRkFVTFRfRVJST1JfTUVTU0FHRVMsIFZhbGlkYXRpb25LZXlzIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyB2YWxpZGF0b3IgfSBmcm9tIFwiLi9kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSBcIi4uL1ZhbGlkYXRpb25cIjtcbmltcG9ydCB7IFR5cGVWYWxpZGF0b3JPcHRpb25zLCBWYWxpZGF0b3JEZWZpbml0aW9uIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IE1vZGVsS2V5cyB9IGZyb20gXCIuLi8uLi91dGlscy9jb25zdGFudHNcIjtcbmltcG9ydCB7IFJlZmxlY3Rpb24gfSBmcm9tIFwiQGRlY2FmLXRzL3JlZmxlY3Rpb25cIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBSZXF1aXJlZCBWYWxpZGF0b3JcbiAqXG4gKiBAY2xhc3MgUmVxdWlyZWRWYWxpZGF0b3JcbiAqIEBleHRlbmRzIFZhbGlkYXRvclxuICpcbiAqIEBjYXRlZ29yeSBWYWxpZGF0b3JzXG4gKi9cbkB2YWxpZGF0b3IoVmFsaWRhdGlvbktleXMuVFlQRSlcbmV4cG9ydCBjbGFzcyBUeXBlVmFsaWRhdG9yIGV4dGVuZHMgVmFsaWRhdG9yPFR5cGVWYWxpZGF0b3JPcHRpb25zPiB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZyA9IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuVFlQRSkge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFZhbGlkYXRlcyBhIG1vZGVsXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICAgKiBAcGFyYW0ge1R5cGVWYWxpZGF0b3JPcHRpb25zfSBvcHRpb25zXG4gICAqXG4gICAqIEByZXR1cm4ge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICpcbiAgICogQG92ZXJyaWRlXG4gICAqXG4gICAqIEBzZWUgVmFsaWRhdG9yI2hhc0Vycm9yc1xuICAgKi9cbiAgcHVibGljIGhhc0Vycm9ycyhcbiAgICB2YWx1ZTogYW55LFxuICAgIG9wdGlvbnM6IFR5cGVWYWxpZGF0b3JPcHRpb25zXG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybjsgLy8gRG9uJ3QgdHJ5IGFuZCBlbmZvcmNlIHR5cGUgaWYgdW5kZWZpbmVkXG4gICAgY29uc3QgeyB0eXBlcywgbWVzc2FnZSB9ID0gb3B0aW9ucztcbiAgICBpZiAoIVJlZmxlY3Rpb24uZXZhbHVhdGVEZXNpZ25UeXBlcyh2YWx1ZSwgdHlwZXMpKVxuICAgICAgcmV0dXJuIHRoaXMuZ2V0TWVzc2FnZShcbiAgICAgICAgbWVzc2FnZSB8fCB0aGlzLm1lc3NhZ2UsXG4gICAgICAgIHR5cGVvZiB0eXBlcyA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgID8gdHlwZXNcbiAgICAgICAgICA6IEFycmF5LmlzQXJyYXkodHlwZXMpXG4gICAgICAgICAgICA/IHR5cGVzLmpvaW4oXCIsIFwiKVxuICAgICAgICAgICAgOiB0eXBlcy5uYW1lLFxuICAgICAgICB0eXBlb2YgdmFsdWVcbiAgICAgICk7XG4gIH1cbn1cblxuVmFsaWRhdGlvbi5yZWdpc3Rlcih7XG4gIHZhbGlkYXRvcjogVHlwZVZhbGlkYXRvcixcbiAgdmFsaWRhdGlvbktleTogTW9kZWxLZXlzLlRZUEUsXG4gIHNhdmU6IGZhbHNlLFxufSBhcyBWYWxpZGF0b3JEZWZpbml0aW9uKTtcbiJdfQ==
@@ -0,0 +1,27 @@
1
+ import { PatternValidator } from "./PatternValidator";
2
+ import { PatternValidatorOptions } from "./types";
3
+ /**
4
+ * @summary URL Validator
5
+ * @description Pattern from {@link https://gist.github.com/dperini/729294}
6
+ *
7
+ * @class URLValidator
8
+ * @extends PatternValidator
9
+ *
10
+ * @category Validators
11
+ */
12
+ export declare class URLValidator extends PatternValidator {
13
+ constructor(message?: string);
14
+ /**
15
+ * @summary Validates a model
16
+ *
17
+ * @param {string} value
18
+ * @param {PatternValidatorOptions} [options={}]
19
+ *
20
+ * @return {string | undefined}
21
+ *
22
+ * @override
23
+ *
24
+ * @see Validator#hasErrors
25
+ */
26
+ hasErrors(value: string, options?: PatternValidatorOptions): string | undefined;
27
+ }
@@ -0,0 +1,51 @@
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 { ValidationKeys, DEFAULT_ERROR_MESSAGES, DEFAULT_PATTERNS, } from "./constants";
11
+ import { PatternValidator } from "./PatternValidator";
12
+ import { validator } from "./decorators";
13
+ /**
14
+ * @summary URL Validator
15
+ * @description Pattern from {@link https://gist.github.com/dperini/729294}
16
+ *
17
+ * @class URLValidator
18
+ * @extends PatternValidator
19
+ *
20
+ * @category Validators
21
+ */
22
+ let URLValidator = class URLValidator extends PatternValidator {
23
+ constructor(message = DEFAULT_ERROR_MESSAGES.URL) {
24
+ super(message);
25
+ }
26
+ /**
27
+ * @summary Validates a model
28
+ *
29
+ * @param {string} value
30
+ * @param {PatternValidatorOptions} [options={}]
31
+ *
32
+ * @return {string | undefined}
33
+ *
34
+ * @override
35
+ *
36
+ * @see Validator#hasErrors
37
+ */
38
+ hasErrors(value, options = {}) {
39
+ return super.hasErrors(value, {
40
+ ...options,
41
+ pattern: options.pattern || DEFAULT_PATTERNS.URL,
42
+ });
43
+ }
44
+ };
45
+ URLValidator = __decorate([
46
+ validator(ValidationKeys.URL),
47
+ __metadata("design:paramtypes", [String])
48
+ ], URLValidator);
49
+ export { URLValidator };
50
+
51
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvVVJMVmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxjQUFjLEVBQ2Qsc0JBQXNCLEVBQ3RCLGdCQUFnQixHQUNqQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR3pDOzs7Ozs7OztHQVFHO0FBRUksSUFBTSxZQUFZLEdBQWxCLE1BQU0sWUFBYSxTQUFRLGdCQUFnQjtJQUNoRCxZQUFZLFVBQWtCLHNCQUFzQixDQUFDLEdBQUc7UUFDdEQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNJLFNBQVMsQ0FDZCxLQUFhLEVBQ2IsVUFBbUMsRUFBRTtRQUVyQyxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFO1lBQzVCLEdBQUcsT0FBTztZQUNWLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxJQUFJLGdCQUFnQixDQUFDLEdBQUc7U0FDakQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGLENBQUE7QUExQlksWUFBWTtJQUR4QixTQUFTLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQzs7R0FDakIsWUFBWSxDQTBCeEIiLCJmaWxlIjoidmFsaWRhdGlvbi9WYWxpZGF0b3JzL1VSTFZhbGlkYXRvci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFZhbGlkYXRpb25LZXlzLFxuICBERUZBVUxUX0VSUk9SX01FU1NBR0VTLFxuICBERUZBVUxUX1BBVFRFUk5TLFxufSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IFBhdHRlcm5WYWxpZGF0b3IgfSBmcm9tIFwiLi9QYXR0ZXJuVmFsaWRhdG9yXCI7XG5pbXBvcnQgeyB2YWxpZGF0b3IgfSBmcm9tIFwiLi9kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBQYXR0ZXJuVmFsaWRhdG9yT3B0aW9ucyB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgVVJMIFZhbGlkYXRvclxuICogQGRlc2NyaXB0aW9uIFBhdHRlcm4gZnJvbSB7QGxpbmsgaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vZHBlcmluaS83MjkyOTR9XG4gKlxuICogQGNsYXNzIFVSTFZhbGlkYXRvclxuICogQGV4dGVuZHMgUGF0dGVyblZhbGlkYXRvclxuICpcbiAqIEBjYXRlZ29yeSBWYWxpZGF0b3JzXG4gKi9cbkB2YWxpZGF0b3IoVmFsaWRhdGlvbktleXMuVVJMKVxuZXhwb3J0IGNsYXNzIFVSTFZhbGlkYXRvciBleHRlbmRzIFBhdHRlcm5WYWxpZGF0b3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcgPSBERUZBVUxUX0VSUk9SX01FU1NBR0VTLlVSTCkge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFZhbGlkYXRlcyBhIG1vZGVsXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICAgKiBAcGFyYW0ge1BhdHRlcm5WYWxpZGF0b3JPcHRpb25zfSBbb3B0aW9ucz17fV1cbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKlxuICAgKiBAb3ZlcnJpZGVcbiAgICpcbiAgICogQHNlZSBWYWxpZGF0b3IjaGFzRXJyb3JzXG4gICAqL1xuICBwdWJsaWMgaGFzRXJyb3JzKFxuICAgIHZhbHVlOiBzdHJpbmcsXG4gICAgb3B0aW9uczogUGF0dGVyblZhbGlkYXRvck9wdGlvbnMgPSB7fVxuICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBzdXBlci5oYXNFcnJvcnModmFsdWUsIHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBwYXR0ZXJuOiBvcHRpb25zLnBhdHRlcm4gfHwgREVGQVVMVF9QQVRURVJOUy5VUkwsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,41 @@
1
+ import { ValidatorOptions } from "./types";
2
+ /**
3
+ * @summary Base Implementation for Validators
4
+ * @description Provides the underlying functionality for {@link Validator}s
5
+ *
6
+ * @param {string} validationKey the key to register the validator under
7
+ * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#DEFAULT}
8
+ * @param {string[]} [acceptedTypes] defines the value types this validator can validate
9
+ *
10
+ * @class Validator
11
+ * @abstract
12
+ * @category Validators
13
+ */
14
+ export declare abstract class Validator<V extends ValidatorOptions = ValidatorOptions> {
15
+ readonly message: string;
16
+ readonly acceptedTypes?: string[];
17
+ protected constructor(message?: string, ...acceptedTypes: string[]);
18
+ /**
19
+ * @summary builds the error message
20
+ * @param {string} message
21
+ * @param {any[]} args
22
+ * @protected
23
+ */
24
+ protected getMessage(message: string, ...args: any[]): string;
25
+ /**
26
+ * @summary Validates type
27
+ * @param {any} unbound
28
+ * @private
29
+ */
30
+ private checkTypeAndHasErrors;
31
+ /**
32
+ * @summary Validates an attribute
33
+ * @param {any} value
34
+ * @param {ValidatorOptions} [options] Validate options for customizing the model validation behavior
35
+ *
36
+ * @abstract
37
+ *
38
+ * @see Model#hasErrors
39
+ */
40
+ abstract hasErrors(value: any, options?: V): string | undefined;
41
+ }