@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,57 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.MinLengthValidator = void 0;
13
+ const Validator_1 = require("./Validator.cjs");
14
+ const constants_1 = require("./constants.cjs");
15
+ const decorators_1 = require("./decorators.cjs");
16
+ /**
17
+ * @summary Minimum Length Validator
18
+ * @description Validates strings and Arrays on their minimum length
19
+ *
20
+ * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#MIN_LENGTH}
21
+ *
22
+ * @class MinLengthValidator
23
+ * @extends Validator
24
+ *
25
+ * @category Validators
26
+ */
27
+ let MinLengthValidator = class MinLengthValidator extends Validator_1.Validator {
28
+ constructor(message = constants_1.DEFAULT_ERROR_MESSAGES.MIN_LENGTH) {
29
+ super(message, String.name, Array.name);
30
+ }
31
+ /**
32
+ *
33
+ * @param {string | Array} value
34
+ * @param {MinLengthValidatorOptions} options
35
+ *
36
+ * @return {string | undefined}
37
+ *
38
+ * @memberOf MinLengthValidator
39
+ * @override
40
+ *
41
+ * @see Validator#hasErrors
42
+ */
43
+ hasErrors(value, options) {
44
+ if (typeof value === "undefined")
45
+ return;
46
+ return value.length < options.minLength
47
+ ? this.getMessage(options.message || this.message, options.minLength)
48
+ : undefined;
49
+ }
50
+ };
51
+ exports.MinLengthValidator = MinLengthValidator;
52
+ exports.MinLengthValidator = MinLengthValidator = __decorate([
53
+ (0, decorators_1.validator)(constants_1.ValidationKeys.MIN_LENGTH),
54
+ __metadata("design:paramtypes", [String])
55
+ ], MinLengthValidator);
56
+
57
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvTWluTGVuZ3RoVmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLDJDQUF3QztBQUN4QywyQ0FBcUU7QUFDckUsNkNBQXlDO0FBR3pDOzs7Ozs7Ozs7O0dBVUc7QUFFSSxJQUFNLGtCQUFrQixHQUF4QixNQUFNLGtCQUFtQixTQUFRLHFCQUFvQztJQUMxRSxZQUFZLFVBQWtCLGtDQUFzQixDQUFDLFVBQVU7UUFDN0QsS0FBSyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSSxTQUFTLENBQ2QsS0FBcUIsRUFDckIsT0FBa0M7UUFFbEMsSUFBSSxPQUFPLEtBQUssS0FBSyxXQUFXO1lBQUUsT0FBTztRQUN6QyxPQUFPLEtBQUssQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLFNBQVM7WUFDckMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUM7WUFDckUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNoQixDQUFDO0NBQ0YsQ0FBQTtBQTFCWSxnREFBa0I7NkJBQWxCLGtCQUFrQjtJQUQ5QixJQUFBLHNCQUFTLEVBQUMsMEJBQWMsQ0FBQyxVQUFVLENBQUM7O0dBQ3hCLGtCQUFrQixDQTBCOUIiLCJmaWxlIjoidmFsaWRhdGlvbi9WYWxpZGF0b3JzL01pbkxlbmd0aFZhbGlkYXRvci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbGlkYXRvciB9IGZyb20gXCIuL1ZhbGlkYXRvclwiO1xuaW1wb3J0IHsgREVGQVVMVF9FUlJPUl9NRVNTQUdFUywgVmFsaWRhdGlvbktleXMgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IHZhbGlkYXRvciB9IGZyb20gXCIuL2RlY29yYXRvcnNcIjtcbmltcG9ydCB7IE1pbkxlbmd0aFZhbGlkYXRvck9wdGlvbnMgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IE1pbmltdW0gTGVuZ3RoIFZhbGlkYXRvclxuICogQGRlc2NyaXB0aW9uIFZhbGlkYXRlcyBzdHJpbmdzIGFuZCBBcnJheXMgb24gdGhlaXIgbWluaW11bSBsZW5ndGhcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2VdIGRlZmF1bHRzIHRvIHtAbGluayBERUZBVUxUX0VSUk9SX01FU1NBR0VTI01JTl9MRU5HVEh9XG4gKlxuICogQGNsYXNzIE1pbkxlbmd0aFZhbGlkYXRvclxuICogQGV4dGVuZHMgVmFsaWRhdG9yXG4gKlxuICogQGNhdGVnb3J5IFZhbGlkYXRvcnNcbiAqL1xuQHZhbGlkYXRvcihWYWxpZGF0aW9uS2V5cy5NSU5fTEVOR1RIKVxuZXhwb3J0IGNsYXNzIE1pbkxlbmd0aFZhbGlkYXRvciBleHRlbmRzIFZhbGlkYXRvcjxNaW5MZW5ndGhWYWxpZGF0b3JPcHRpb25zPiB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZyA9IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuTUlOX0xFTkdUSCkge1xuICAgIHN1cGVyKG1lc3NhZ2UsIFN0cmluZy5uYW1lLCBBcnJheS5uYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IEFycmF5fSB2YWx1ZVxuICAgKiBAcGFyYW0ge01pbkxlbmd0aFZhbGlkYXRvck9wdGlvbnN9IG9wdGlvbnNcbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKlxuICAgKiBAbWVtYmVyT2YgTWluTGVuZ3RoVmFsaWRhdG9yXG4gICAqIEBvdmVycmlkZVxuICAgKlxuICAgKiBAc2VlIFZhbGlkYXRvciNoYXNFcnJvcnNcbiAgICovXG4gIHB1YmxpYyBoYXNFcnJvcnMoXG4gICAgdmFsdWU6IHN0cmluZyB8IGFueVtdLFxuICAgIG9wdGlvbnM6IE1pbkxlbmd0aFZhbGlkYXRvck9wdGlvbnNcbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm47XG4gICAgcmV0dXJuIHZhbHVlLmxlbmd0aCA8IG9wdGlvbnMubWluTGVuZ3RoXG4gICAgICA/IHRoaXMuZ2V0TWVzc2FnZShvcHRpb25zLm1lc3NhZ2UgfHwgdGhpcy5tZXNzYWdlLCBvcHRpb25zLm1pbkxlbmd0aClcbiAgICAgIDogdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
@@ -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,62 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.MinValidator = void 0;
13
+ const Validator_1 = require("./Validator.cjs");
14
+ const constants_1 = require("./constants.cjs");
15
+ const decorators_1 = require("./decorators.cjs");
16
+ /**
17
+ * @summary Min Validator
18
+ *
19
+ * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#MIN}
20
+ *
21
+ * @class MinValidator
22
+ * @extends Validator
23
+ *
24
+ * @category Validators
25
+ */
26
+ let MinValidator = class MinValidator extends Validator_1.Validator {
27
+ constructor(message = constants_1.DEFAULT_ERROR_MESSAGES.MIN) {
28
+ super(message, "number", "Date", "string");
29
+ }
30
+ /**
31
+ * @summary Validates Model
32
+ *
33
+ * @param {string} value
34
+ * @param {MaxValidatorOptions} options
35
+ *
36
+ * @return {string | undefined}
37
+ *
38
+ * @override
39
+ *
40
+ * @see Validator#hasErrors
41
+ */
42
+ hasErrors(value, options) {
43
+ if (typeof value === "undefined")
44
+ return;
45
+ let { min } = options;
46
+ if (value instanceof Date && !(min instanceof Date)) {
47
+ min = new Date(min);
48
+ if (Number.isNaN(min.getDate()))
49
+ throw new Error("Invalid Min param defined");
50
+ }
51
+ return value < min
52
+ ? this.getMessage(options.message || this.message, min)
53
+ : undefined;
54
+ }
55
+ };
56
+ exports.MinValidator = MinValidator;
57
+ exports.MinValidator = MinValidator = __decorate([
58
+ (0, decorators_1.validator)(constants_1.ValidationKeys.MIN),
59
+ __metadata("design:paramtypes", [String])
60
+ ], MinValidator);
61
+
62
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvTWluVmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLDJDQUF3QztBQUN4QywyQ0FBcUU7QUFDckUsNkNBQXlDO0FBR3pDOzs7Ozs7Ozs7R0FTRztBQUVJLElBQU0sWUFBWSxHQUFsQixNQUFNLFlBQWEsU0FBUSxxQkFBOEI7SUFDOUQsWUFBWSxVQUFrQixrQ0FBc0IsQ0FBQyxHQUFHO1FBQ3RELEtBQUssQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSSxTQUFTLENBQ2QsS0FBNkIsRUFDN0IsT0FBNEI7UUFFNUIsSUFBSSxPQUFPLEtBQUssS0FBSyxXQUFXO1lBQUUsT0FBTztRQUV6QyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQ3RCLElBQUksS0FBSyxZQUFZLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxZQUFZLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDcEQsR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BCLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBQ0QsT0FBTyxLQUFLLEdBQUcsR0FBRztZQUNoQixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDO1lBQ3ZELENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDaEIsQ0FBQztDQUNGLENBQUE7QUFqQ1ksb0NBQVk7dUJBQVosWUFBWTtJQUR4QixJQUFBLHNCQUFTLEVBQUMsMEJBQWMsQ0FBQyxHQUFHLENBQUM7O0dBQ2pCLFlBQVksQ0FpQ3hCIiwiZmlsZSI6InZhbGlkYXRpb24vVmFsaWRhdG9ycy9NaW5WYWxpZGF0b3IuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0b3IgfSBmcm9tIFwiLi9WYWxpZGF0b3JcIjtcbmltcG9ydCB7IERFRkFVTFRfRVJST1JfTUVTU0FHRVMsIFZhbGlkYXRpb25LZXlzIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyB2YWxpZGF0b3IgfSBmcm9tIFwiLi9kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBNaW5WYWxpZGF0b3JPcHRpb25zIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBNaW4gVmFsaWRhdG9yXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IFttZXNzYWdlXSBkZWZhdWx0cyB0byB7QGxpbmsgREVGQVVMVF9FUlJPUl9NRVNTQUdFUyNNSU59XG4gKlxuICogQGNsYXNzIE1pblZhbGlkYXRvclxuICogQGV4dGVuZHMgVmFsaWRhdG9yXG4gKlxuICogQGNhdGVnb3J5IFZhbGlkYXRvcnNcbiAqL1xuQHZhbGlkYXRvcihWYWxpZGF0aW9uS2V5cy5NSU4pXG5leHBvcnQgY2xhc3MgTWluVmFsaWRhdG9yIGV4dGVuZHMgVmFsaWRhdG9yPE1pblZhbGlkYXRvck9wdGlvbnM+IHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nID0gREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5NSU4pIHtcbiAgICBzdXBlcihtZXNzYWdlLCBcIm51bWJlclwiLCBcIkRhdGVcIiwgXCJzdHJpbmdcIik7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgVmFsaWRhdGVzIE1vZGVsXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICAgKiBAcGFyYW0ge01heFZhbGlkYXRvck9wdGlvbnN9IG9wdGlvbnNcbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKlxuICAgKiBAb3ZlcnJpZGVcbiAgICpcbiAgICogQHNlZSBWYWxpZGF0b3IjaGFzRXJyb3JzXG4gICAqL1xuICBwdWJsaWMgaGFzRXJyb3JzKFxuICAgIHZhbHVlOiBudW1iZXIgfCBEYXRlIHwgc3RyaW5nLFxuICAgIG9wdGlvbnM6IE1pblZhbGlkYXRvck9wdGlvbnNcbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm47XG5cbiAgICBsZXQgeyBtaW4gfSA9IG9wdGlvbnM7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSAmJiAhKG1pbiBpbnN0YW5jZW9mIERhdGUpKSB7XG4gICAgICBtaW4gPSBuZXcgRGF0ZShtaW4pO1xuICAgICAgaWYgKE51bWJlci5pc05hTihtaW4uZ2V0RGF0ZSgpKSlcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBNaW4gcGFyYW0gZGVmaW5lZFwiKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlIDwgbWluXG4gICAgICA/IHRoaXMuZ2V0TWVzc2FnZShvcHRpb25zLm1lc3NhZ2UgfHwgdGhpcy5tZXNzYWdlLCBtaW4pXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgfVxufVxuIl19
@@ -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,55 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.PasswordValidator = void 0;
13
+ const PatternValidator_1 = require("./PatternValidator.cjs");
14
+ const constants_1 = require("./constants.cjs");
15
+ const decorators_1 = require("./decorators.cjs");
16
+ /**
17
+ * @summary Handles Password Validation
18
+ *
19
+ * @param {string} [errorMessage] defaults to {@link DEFAULT_ERROR_MESSAGES#PASSWORD}
20
+ *
21
+ * @class PasswordValidator
22
+ * @extends PatternValidator
23
+ *
24
+ * @category Validators
25
+ */
26
+ let PasswordValidator = class PasswordValidator extends PatternValidator_1.PatternValidator {
27
+ constructor(message = constants_1.DEFAULT_ERROR_MESSAGES.PASSWORD) {
28
+ super(message);
29
+ }
30
+ /**
31
+ * @summary Validates a model
32
+ *
33
+ * @param {string} value
34
+ * @param {PatternValidatorOptions} [options={}]
35
+ *
36
+ * @return {string | undefined}
37
+ *
38
+ * @override
39
+ *
40
+ * @see PatternValidator#hasErrors
41
+ */
42
+ hasErrors(value, options = {}) {
43
+ return super.hasErrors(value, {
44
+ ...options,
45
+ message: options.message || this.message,
46
+ });
47
+ }
48
+ };
49
+ exports.PasswordValidator = PasswordValidator;
50
+ exports.PasswordValidator = PasswordValidator = __decorate([
51
+ (0, decorators_1.validator)(constants_1.ValidationKeys.PASSWORD),
52
+ __metadata("design:paramtypes", [Object])
53
+ ], PasswordValidator);
54
+
55
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvUGFzc3dvcmRWYWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEseURBQXNEO0FBQ3RELDJDQUFxRTtBQUNyRSw2Q0FBeUM7QUFHekM7Ozs7Ozs7OztHQVNHO0FBRUksSUFBTSxpQkFBaUIsR0FBdkIsTUFBTSxpQkFBa0IsU0FBUSxtQ0FBZ0I7SUFDckQsWUFBWSxPQUFPLEdBQUcsa0NBQXNCLENBQUMsUUFBUTtRQUNuRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0ksU0FBUyxDQUNkLEtBQWEsRUFDYixVQUFtQyxFQUFFO1FBRXJDLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUU7WUFDNUIsR0FBRyxPQUFPO1lBQ1YsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU87U0FDekMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGLENBQUE7QUExQlksOENBQWlCOzRCQUFqQixpQkFBaUI7SUFEN0IsSUFBQSxzQkFBUyxFQUFDLDBCQUFjLENBQUMsUUFBUSxDQUFDOztHQUN0QixpQkFBaUIsQ0EwQjdCIiwiZmlsZSI6InZhbGlkYXRpb24vVmFsaWRhdG9ycy9QYXNzd29yZFZhbGlkYXRvci5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhdHRlcm5WYWxpZGF0b3IgfSBmcm9tIFwiLi9QYXR0ZXJuVmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBERUZBVUxUX0VSUk9SX01FU1NBR0VTLCBWYWxpZGF0aW9uS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgdmFsaWRhdG9yIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgUGF0dGVyblZhbGlkYXRvck9wdGlvbnMgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IEhhbmRsZXMgUGFzc3dvcmQgVmFsaWRhdGlvblxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbZXJyb3JNZXNzYWdlXSBkZWZhdWx0cyB0byB7QGxpbmsgREVGQVVMVF9FUlJPUl9NRVNTQUdFUyNQQVNTV09SRH1cbiAqXG4gKiBAY2xhc3MgUGFzc3dvcmRWYWxpZGF0b3JcbiAqIEBleHRlbmRzIFBhdHRlcm5WYWxpZGF0b3JcbiAqXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdG9yc1xuICovXG5AdmFsaWRhdG9yKFZhbGlkYXRpb25LZXlzLlBBU1NXT1JEKVxuZXhwb3J0IGNsYXNzIFBhc3N3b3JkVmFsaWRhdG9yIGV4dGVuZHMgUGF0dGVyblZhbGlkYXRvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2UgPSBERUZBVUxUX0VSUk9SX01FU1NBR0VTLlBBU1NXT1JEKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgVmFsaWRhdGVzIGEgbW9kZWxcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gICAqIEBwYXJhbSB7UGF0dGVyblZhbGlkYXRvck9wdGlvbnN9IFtvcHRpb25zPXt9XVxuICAgKlxuICAgKiBAcmV0dXJuIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqXG4gICAqIEBvdmVycmlkZVxuICAgKlxuICAgKiBAc2VlIFBhdHRlcm5WYWxpZGF0b3IjaGFzRXJyb3JzXG4gICAqL1xuICBwdWJsaWMgaGFzRXJyb3JzKFxuICAgIHZhbHVlOiBzdHJpbmcsXG4gICAgb3B0aW9uczogUGF0dGVyblZhbGlkYXRvck9wdGlvbnMgPSB7fVxuICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBzdXBlci5oYXNFcnJvcnModmFsdWUsIHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBtZXNzYWdlOiBvcHRpb25zLm1lc3NhZ2UgfHwgdGhpcy5tZXNzYWdlLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -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,75 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.PatternValidator = exports.regexpParser = void 0;
13
+ const Validator_1 = require("./Validator.cjs");
14
+ const constants_1 = require("./constants.cjs");
15
+ const decorators_1 = require("./decorators.cjs");
16
+ exports.regexpParser = new RegExp("^/(.+)/([gimus]*)$");
17
+ /**
18
+ * @summary Pattern Validator
19
+ *
20
+ * @param {string} [key] defaults to {@link ValidationKeys#PATTERN}
21
+ * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#PATTERN}
22
+ *
23
+ * @class PatternValidator
24
+ * @extends Validator
25
+ *
26
+ * @category Validators
27
+ */
28
+ let PatternValidator = class PatternValidator extends Validator_1.Validator {
29
+ constructor(message = constants_1.DEFAULT_ERROR_MESSAGES.PATTERN) {
30
+ super(message, "string");
31
+ }
32
+ /**
33
+ * @summary parses and validates a pattern
34
+ *
35
+ * @param {string} pattern
36
+ * @private
37
+ */
38
+ getPattern(pattern) {
39
+ if (!exports.regexpParser.test(pattern))
40
+ return new RegExp(pattern);
41
+ const match = pattern.match(exports.regexpParser);
42
+ return new RegExp(match[1], match[2]);
43
+ }
44
+ /**
45
+ * @summary Validates a Model
46
+ *
47
+ * @param {string} value
48
+ * @param {PatternValidatorOptions} options
49
+ *
50
+ * @return {string | undefined}
51
+ *
52
+ * @override
53
+ *
54
+ * @see Validator#hasErrors
55
+ */
56
+ hasErrors(value, options) {
57
+ if (!value)
58
+ return;
59
+ let { pattern } = options;
60
+ if (!pattern)
61
+ throw new Error("Missing Pattern");
62
+ pattern = typeof pattern === "string" ? this.getPattern(pattern) : pattern;
63
+ pattern.lastIndex = 0; // resets pattern position for repeat validation requests
64
+ return !pattern.test(value)
65
+ ? this.getMessage(options.message || this.message)
66
+ : undefined;
67
+ }
68
+ };
69
+ exports.PatternValidator = PatternValidator;
70
+ exports.PatternValidator = PatternValidator = __decorate([
71
+ (0, decorators_1.validator)(constants_1.ValidationKeys.PATTERN),
72
+ __metadata("design:paramtypes", [String])
73
+ ], PatternValidator);
74
+
75
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvUGF0dGVyblZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBd0M7QUFDeEMsMkNBQXFFO0FBQ3JFLDZDQUF5QztBQUc1QixRQUFBLFlBQVksR0FBVyxJQUFJLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBRXJFOzs7Ozs7Ozs7O0dBVUc7QUFFSSxJQUFNLGdCQUFnQixHQUF0QixNQUFNLGdCQUFpQixTQUFRLHFCQUFrQztJQUN0RSxZQUFZLFVBQWtCLGtDQUFzQixDQUFDLE9BQU87UUFDMUQsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxVQUFVLENBQUMsT0FBZTtRQUNoQyxJQUFJLENBQUMsb0JBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQUUsT0FBTyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1RCxNQUFNLEtBQUssR0FBUSxPQUFPLENBQUMsS0FBSyxDQUFDLG9CQUFZLENBQUMsQ0FBQztRQUMvQyxPQUFPLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSSxTQUFTLENBQ2QsS0FBYSxFQUNiLE9BQWdDO1FBRWhDLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTztRQUVuQixJQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQzFCLElBQUksQ0FBQyxPQUFPO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sR0FBRyxPQUFPLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUMzRSxPQUFPLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLHlEQUF5RDtRQUNoRixPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDekIsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ2xELENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDaEIsQ0FBQztDQUNGLENBQUE7QUEzQ1ksNENBQWdCOzJCQUFoQixnQkFBZ0I7SUFENUIsSUFBQSxzQkFBUyxFQUFDLDBCQUFjLENBQUMsT0FBTyxDQUFDOztHQUNyQixnQkFBZ0IsQ0EyQzVCIiwiZmlsZSI6InZhbGlkYXRpb24vVmFsaWRhdG9ycy9QYXR0ZXJuVmFsaWRhdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSBcIi4vVmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBERUZBVUxUX0VSUk9SX01FU1NBR0VTLCBWYWxpZGF0aW9uS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgdmFsaWRhdG9yIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgUGF0dGVyblZhbGlkYXRvck9wdGlvbnMgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG5leHBvcnQgY29uc3QgcmVnZXhwUGFyc2VyOiBSZWdFeHAgPSBuZXcgUmVnRXhwKFwiXi8oLispLyhbZ2ltdXNdKikkXCIpO1xuXG4vKipcbiAqIEBzdW1tYXJ5IFBhdHRlcm4gVmFsaWRhdG9yXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IFtrZXldIGRlZmF1bHRzIHRvIHtAbGluayBWYWxpZGF0aW9uS2V5cyNQQVRURVJOfVxuICogQHBhcmFtIHtzdHJpbmd9IFttZXNzYWdlXSBkZWZhdWx0cyB0byB7QGxpbmsgREVGQVVMVF9FUlJPUl9NRVNTQUdFUyNQQVRURVJOfVxuICpcbiAqIEBjbGFzcyBQYXR0ZXJuVmFsaWRhdG9yXG4gKiBAZXh0ZW5kcyBWYWxpZGF0b3JcbiAqXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdG9yc1xuICovXG5AdmFsaWRhdG9yKFZhbGlkYXRpb25LZXlzLlBBVFRFUk4pXG5leHBvcnQgY2xhc3MgUGF0dGVyblZhbGlkYXRvciBleHRlbmRzIFZhbGlkYXRvcjxQYXR0ZXJuVmFsaWRhdG9yT3B0aW9ucz4ge1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcgPSBERUZBVUxUX0VSUk9SX01FU1NBR0VTLlBBVFRFUk4pIHtcbiAgICBzdXBlcihtZXNzYWdlLCBcInN0cmluZ1wiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBwYXJzZXMgYW5kIHZhbGlkYXRlcyBhIHBhdHRlcm5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhdHRlcm5cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgZ2V0UGF0dGVybihwYXR0ZXJuOiBzdHJpbmcpOiBSZWdFeHAge1xuICAgIGlmICghcmVnZXhwUGFyc2VyLnRlc3QocGF0dGVybikpIHJldHVybiBuZXcgUmVnRXhwKHBhdHRlcm4pO1xuICAgIGNvbnN0IG1hdGNoOiBhbnkgPSBwYXR0ZXJuLm1hdGNoKHJlZ2V4cFBhcnNlcik7XG4gICAgcmV0dXJuIG5ldyBSZWdFeHAobWF0Y2hbMV0sIG1hdGNoWzJdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBWYWxpZGF0ZXMgYSBNb2RlbFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAgICogQHBhcmFtIHtQYXR0ZXJuVmFsaWRhdG9yT3B0aW9uc30gb3B0aW9uc1xuICAgKlxuICAgKiBAcmV0dXJuIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqXG4gICAqIEBvdmVycmlkZVxuICAgKlxuICAgKiBAc2VlIFZhbGlkYXRvciNoYXNFcnJvcnNcbiAgICovXG4gIHB1YmxpYyBoYXNFcnJvcnMoXG4gICAgdmFsdWU6IHN0cmluZyxcbiAgICBvcHRpb25zOiBQYXR0ZXJuVmFsaWRhdG9yT3B0aW9uc1xuICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmICghdmFsdWUpIHJldHVybjtcblxuICAgIGxldCB7IHBhdHRlcm4gfSA9IG9wdGlvbnM7XG4gICAgaWYgKCFwYXR0ZXJuKSB0aHJvdyBuZXcgRXJyb3IoXCJNaXNzaW5nIFBhdHRlcm5cIik7XG4gICAgcGF0dGVybiA9IHR5cGVvZiBwYXR0ZXJuID09PSBcInN0cmluZ1wiID8gdGhpcy5nZXRQYXR0ZXJuKHBhdHRlcm4pIDogcGF0dGVybjtcbiAgICBwYXR0ZXJuLmxhc3RJbmRleCA9IDA7IC8vIHJlc2V0cyBwYXR0ZXJuIHBvc2l0aW9uIGZvciByZXBlYXQgdmFsaWRhdGlvbiByZXF1ZXN0c1xuICAgIHJldHVybiAhcGF0dGVybi50ZXN0KHZhbHVlKVxuICAgICAgPyB0aGlzLmdldE1lc3NhZ2Uob3B0aW9ucy5tZXNzYWdlIHx8IHRoaXMubWVzc2FnZSlcbiAgICAgIDogdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
@@ -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,62 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.RequiredValidator = void 0;
13
+ const Validator_1 = require("./Validator.cjs");
14
+ const constants_1 = require("./constants.cjs");
15
+ const decorators_1 = require("./decorators.cjs");
16
+ /**
17
+ * @summary Required Validator
18
+ *
19
+ * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#REQUIRED}
20
+ *
21
+ * @class RequiredValidator
22
+ * @extends Validator
23
+ *
24
+ * @category Validators
25
+ */
26
+ let RequiredValidator = class RequiredValidator extends Validator_1.Validator {
27
+ constructor(message = constants_1.DEFAULT_ERROR_MESSAGES.REQUIRED) {
28
+ super(message);
29
+ }
30
+ /**
31
+ * @summary Validates a model
32
+ *
33
+ * @param {string} value
34
+ * @param {ValidatorOptions} [options={}]
35
+ *
36
+ * @return {string | undefined}
37
+ *
38
+ * @override
39
+ *
40
+ * @see Validator#hasErrors
41
+ */
42
+ hasErrors(value, options = {}) {
43
+ switch (typeof value) {
44
+ case "boolean":
45
+ case "number":
46
+ return typeof value === "undefined"
47
+ ? this.getMessage(options.message || this.message)
48
+ : undefined;
49
+ default:
50
+ return !value
51
+ ? this.getMessage(options.message || this.message)
52
+ : undefined;
53
+ }
54
+ }
55
+ };
56
+ exports.RequiredValidator = RequiredValidator;
57
+ exports.RequiredValidator = RequiredValidator = __decorate([
58
+ (0, decorators_1.validator)(constants_1.ValidationKeys.REQUIRED),
59
+ __metadata("design:paramtypes", [String])
60
+ ], RequiredValidator);
61
+
62
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvUmVxdWlyZWRWYWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQXdDO0FBQ3hDLDJDQUFxRTtBQUNyRSw2Q0FBeUM7QUFHekM7Ozs7Ozs7OztHQVNHO0FBRUksSUFBTSxpQkFBaUIsR0FBdkIsTUFBTSxpQkFBa0IsU0FBUSxxQkFBUztJQUM5QyxZQUFZLFVBQWtCLGtDQUFzQixDQUFDLFFBQVE7UUFDM0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNJLFNBQVMsQ0FDZCxLQUFVLEVBQ1YsVUFBNEIsRUFBRTtRQUU5QixRQUFRLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDckIsS0FBSyxTQUFTLENBQUM7WUFDZixLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxPQUFPLEtBQUssS0FBSyxXQUFXO29CQUNqQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUM7b0JBQ2xELENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDaEI7Z0JBQ0UsT0FBTyxDQUFDLEtBQUs7b0JBQ1gsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDO29CQUNsRCxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0NBQ0YsQ0FBQTtBQWpDWSw4Q0FBaUI7NEJBQWpCLGlCQUFpQjtJQUQ3QixJQUFBLHNCQUFTLEVBQUMsMEJBQWMsQ0FBQyxRQUFRLENBQUM7O0dBQ3RCLGlCQUFpQixDQWlDN0IiLCJmaWxlIjoidmFsaWRhdGlvbi9WYWxpZGF0b3JzL1JlcXVpcmVkVmFsaWRhdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSBcIi4vVmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBERUZBVUxUX0VSUk9SX01FU1NBR0VTLCBWYWxpZGF0aW9uS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgdmFsaWRhdG9yIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgVmFsaWRhdG9yT3B0aW9ucyB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgUmVxdWlyZWQgVmFsaWRhdG9yXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IFttZXNzYWdlXSBkZWZhdWx0cyB0byB7QGxpbmsgREVGQVVMVF9FUlJPUl9NRVNTQUdFUyNSRVFVSVJFRH1cbiAqXG4gKiBAY2xhc3MgUmVxdWlyZWRWYWxpZGF0b3JcbiAqIEBleHRlbmRzIFZhbGlkYXRvclxuICpcbiAqIEBjYXRlZ29yeSBWYWxpZGF0b3JzXG4gKi9cbkB2YWxpZGF0b3IoVmFsaWRhdGlvbktleXMuUkVRVUlSRUQpXG5leHBvcnQgY2xhc3MgUmVxdWlyZWRWYWxpZGF0b3IgZXh0ZW5kcyBWYWxpZGF0b3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcgPSBERUZBVUxUX0VSUk9SX01FU1NBR0VTLlJFUVVJUkVEKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgVmFsaWRhdGVzIGEgbW9kZWxcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gICAqIEBwYXJhbSB7VmFsaWRhdG9yT3B0aW9uc30gW29wdGlvbnM9e31dXG4gICAqXG4gICAqIEByZXR1cm4ge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICpcbiAgICogQG92ZXJyaWRlXG4gICAqXG4gICAqIEBzZWUgVmFsaWRhdG9yI2hhc0Vycm9yc1xuICAgKi9cbiAgcHVibGljIGhhc0Vycm9ycyhcbiAgICB2YWx1ZTogYW55LFxuICAgIG9wdGlvbnM6IFZhbGlkYXRvck9wdGlvbnMgPSB7fVxuICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHN3aXRjaCAodHlwZW9mIHZhbHVlKSB7XG4gICAgICBjYXNlIFwiYm9vbGVhblwiOlxuICAgICAgY2FzZSBcIm51bWJlclwiOlxuICAgICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcInVuZGVmaW5lZFwiXG4gICAgICAgICAgPyB0aGlzLmdldE1lc3NhZ2Uob3B0aW9ucy5tZXNzYWdlIHx8IHRoaXMubWVzc2FnZSlcbiAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAhdmFsdWVcbiAgICAgICAgICA/IHRoaXMuZ2V0TWVzc2FnZShvcHRpb25zLm1lc3NhZ2UgfHwgdGhpcy5tZXNzYWdlKVxuICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -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,57 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.StepValidator = void 0;
13
+ const Validator_1 = require("./Validator.cjs");
14
+ const constants_1 = require("./constants.cjs");
15
+ const decorators_1 = require("./decorators.cjs");
16
+ /**
17
+ * @summary Step Validator
18
+ *
19
+ * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#STEP}
20
+ *
21
+ * @class StepValidator
22
+ * @extends Validator
23
+ *
24
+ * @category Validators
25
+ */
26
+ let StepValidator = class StepValidator extends Validator_1.Validator {
27
+ constructor(message = constants_1.DEFAULT_ERROR_MESSAGES.STEP) {
28
+ super(message, "number", "string");
29
+ }
30
+ /**
31
+ * @summary Validates a model
32
+ *
33
+ * @param {string} value
34
+ * @param {number} step
35
+ * @param {StepValidatorOptions} options
36
+ *
37
+ * @return {string | undefined}
38
+ *
39
+ * @override
40
+ *
41
+ * @see Validator#hasErrors
42
+ */
43
+ hasErrors(value, options) {
44
+ if (typeof value === "undefined")
45
+ return;
46
+ return Number(value) % Number(options.step) !== 0
47
+ ? this.getMessage(options.message || this.message, options.step)
48
+ : undefined;
49
+ }
50
+ };
51
+ exports.StepValidator = StepValidator;
52
+ exports.StepValidator = StepValidator = __decorate([
53
+ (0, decorators_1.validator)(constants_1.ValidationKeys.STEP),
54
+ __metadata("design:paramtypes", [String])
55
+ ], StepValidator);
56
+
57
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvU3RlcFZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBd0M7QUFDeEMsMkNBQXFFO0FBQ3JFLDZDQUF5QztBQUd6Qzs7Ozs7Ozs7O0dBU0c7QUFFSSxJQUFNLGFBQWEsR0FBbkIsTUFBTSxhQUFjLFNBQVEscUJBQStCO0lBQ2hFLFlBQVksVUFBa0Isa0NBQXNCLENBQUMsSUFBSTtRQUN2RCxLQUFLLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0ksU0FBUyxDQUNkLEtBQXNCLEVBQ3RCLE9BQTZCO1FBRTdCLElBQUksT0FBTyxLQUFLLEtBQUssV0FBVztZQUFFLE9BQU87UUFDekMsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQy9DLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ2hFLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDaEIsQ0FBQztDQUNGLENBQUE7QUEzQlksc0NBQWE7d0JBQWIsYUFBYTtJQUR6QixJQUFBLHNCQUFTLEVBQUMsMEJBQWMsQ0FBQyxJQUFJLENBQUM7O0dBQ2xCLGFBQWEsQ0EyQnpCIiwiZmlsZSI6InZhbGlkYXRpb24vVmFsaWRhdG9ycy9TdGVwVmFsaWRhdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSBcIi4vVmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBERUZBVUxUX0VSUk9SX01FU1NBR0VTLCBWYWxpZGF0aW9uS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgdmFsaWRhdG9yIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgU3RlcFZhbGlkYXRvck9wdGlvbnMgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IFN0ZXAgVmFsaWRhdG9yXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IFttZXNzYWdlXSBkZWZhdWx0cyB0byB7QGxpbmsgREVGQVVMVF9FUlJPUl9NRVNTQUdFUyNTVEVQfVxuICpcbiAqIEBjbGFzcyBTdGVwVmFsaWRhdG9yXG4gKiBAZXh0ZW5kcyBWYWxpZGF0b3JcbiAqXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdG9yc1xuICovXG5AdmFsaWRhdG9yKFZhbGlkYXRpb25LZXlzLlNURVApXG5leHBvcnQgY2xhc3MgU3RlcFZhbGlkYXRvciBleHRlbmRzIFZhbGlkYXRvcjxTdGVwVmFsaWRhdG9yT3B0aW9ucz4ge1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcgPSBERUZBVUxUX0VSUk9SX01FU1NBR0VTLlNURVApIHtcbiAgICBzdXBlcihtZXNzYWdlLCBcIm51bWJlclwiLCBcInN0cmluZ1wiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBWYWxpZGF0ZXMgYSBtb2RlbFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAgICogQHBhcmFtIHtudW1iZXJ9IHN0ZXBcbiAgICogQHBhcmFtIHtTdGVwVmFsaWRhdG9yT3B0aW9uc30gb3B0aW9uc1xuICAgKlxuICAgKiBAcmV0dXJuIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqXG4gICAqIEBvdmVycmlkZVxuICAgKlxuICAgKiBAc2VlIFZhbGlkYXRvciNoYXNFcnJvcnNcbiAgICovXG4gIHB1YmxpYyBoYXNFcnJvcnMoXG4gICAgdmFsdWU6IG51bWJlciB8IHN0cmluZyxcbiAgICBvcHRpb25zOiBTdGVwVmFsaWRhdG9yT3B0aW9uc1xuICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybjtcbiAgICByZXR1cm4gTnVtYmVyKHZhbHVlKSAlIE51bWJlcihvcHRpb25zLnN0ZXApICE9PSAwXG4gICAgICA/IHRoaXMuZ2V0TWVzc2FnZShvcHRpb25zLm1lc3NhZ2UgfHwgdGhpcy5tZXNzYWdlLCBvcHRpb25zLnN0ZXApXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgfVxufVxuIl19
@@ -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,65 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.TypeValidator = void 0;
13
+ const Validator_1 = require("./Validator.cjs");
14
+ const constants_1 = require("./constants.cjs");
15
+ const decorators_1 = require("./decorators.cjs");
16
+ const Validation_1 = require("../Validation.cjs");
17
+ const constants_2 = require("../../utils/constants.cjs");
18
+ const reflection_1 = require("@decaf-ts/reflection");
19
+ /**
20
+ * @summary Required Validator
21
+ *
22
+ * @class RequiredValidator
23
+ * @extends Validator
24
+ *
25
+ * @category Validators
26
+ */
27
+ let TypeValidator = class TypeValidator extends Validator_1.Validator {
28
+ constructor(message = constants_1.DEFAULT_ERROR_MESSAGES.TYPE) {
29
+ super(message);
30
+ }
31
+ /**
32
+ * @summary Validates a model
33
+ * @param {string} value
34
+ * @param {TypeValidatorOptions} options
35
+ *
36
+ * @return {string | undefined}
37
+ *
38
+ * @override
39
+ *
40
+ * @see Validator#hasErrors
41
+ */
42
+ hasErrors(value, options) {
43
+ if (value === undefined)
44
+ return; // Don't try and enforce type if undefined
45
+ const { types, message } = options;
46
+ if (!reflection_1.Reflection.evaluateDesignTypes(value, types))
47
+ return this.getMessage(message || this.message, typeof types === "string"
48
+ ? types
49
+ : Array.isArray(types)
50
+ ? types.join(", ")
51
+ : types.name, typeof value);
52
+ }
53
+ };
54
+ exports.TypeValidator = TypeValidator;
55
+ exports.TypeValidator = TypeValidator = __decorate([
56
+ (0, decorators_1.validator)(constants_1.ValidationKeys.TYPE),
57
+ __metadata("design:paramtypes", [String])
58
+ ], TypeValidator);
59
+ Validation_1.Validation.register({
60
+ validator: TypeValidator,
61
+ validationKey: constants_2.ModelKeys.TYPE,
62
+ save: false,
63
+ });
64
+
65
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvVHlwZVZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBd0M7QUFDeEMsMkNBQXFFO0FBQ3JFLDZDQUF5QztBQUN6Qyw4Q0FBMkM7QUFFM0MscURBQWtEO0FBQ2xELHFEQUFrRDtBQUVsRDs7Ozs7OztHQU9HO0FBRUksSUFBTSxhQUFhLEdBQW5CLE1BQU0sYUFBYyxTQUFRLHFCQUErQjtJQUNoRSxZQUFZLFVBQWtCLGtDQUFzQixDQUFDLElBQUk7UUFDdkQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksU0FBUyxDQUNkLEtBQVUsRUFDVixPQUE2QjtRQUU3QixJQUFJLEtBQUssS0FBSyxTQUFTO1lBQUUsT0FBTyxDQUFDLDBDQUEwQztRQUMzRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUNuQyxJQUFJLENBQUMsdUJBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDO1lBQy9DLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FDcEIsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQ3ZCLE9BQU8sS0FBSyxLQUFLLFFBQVE7Z0JBQ3ZCLENBQUMsQ0FBQyxLQUFLO2dCQUNQLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztvQkFDcEIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO29CQUNsQixDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFDaEIsT0FBTyxLQUFLLENBQ2IsQ0FBQztJQUNOLENBQUM7Q0FDRixDQUFBO0FBakNZLHNDQUFhO3dCQUFiLGFBQWE7SUFEekIsSUFBQSxzQkFBUyxFQUFDLDBCQUFjLENBQUMsSUFBSSxDQUFDOztHQUNsQixhQUFhLENBaUN6QjtBQUVELHVCQUFVLENBQUMsUUFBUSxDQUFDO0lBQ2xCLFNBQVMsRUFBRSxhQUFhO0lBQ3hCLGFBQWEsRUFBRSxxQkFBUyxDQUFDLElBQUk7SUFDN0IsSUFBSSxFQUFFLEtBQUs7Q0FDVyxDQUFDLENBQUMiLCJmaWxlIjoidmFsaWRhdGlvbi9WYWxpZGF0b3JzL1R5cGVWYWxpZGF0b3IuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0b3IgfSBmcm9tIFwiLi9WYWxpZGF0b3JcIjtcbmltcG9ydCB7IERFRkFVTFRfRVJST1JfTUVTU0FHRVMsIFZhbGlkYXRpb25LZXlzIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyB2YWxpZGF0b3IgfSBmcm9tIFwiLi9kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSBcIi4uL1ZhbGlkYXRpb25cIjtcbmltcG9ydCB7IFR5cGVWYWxpZGF0b3JPcHRpb25zLCBWYWxpZGF0b3JEZWZpbml0aW9uIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IE1vZGVsS2V5cyB9IGZyb20gXCIuLi8uLi91dGlscy9jb25zdGFudHNcIjtcbmltcG9ydCB7IFJlZmxlY3Rpb24gfSBmcm9tIFwiQGRlY2FmLXRzL3JlZmxlY3Rpb25cIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBSZXF1aXJlZCBWYWxpZGF0b3JcbiAqXG4gKiBAY2xhc3MgUmVxdWlyZWRWYWxpZGF0b3JcbiAqIEBleHRlbmRzIFZhbGlkYXRvclxuICpcbiAqIEBjYXRlZ29yeSBWYWxpZGF0b3JzXG4gKi9cbkB2YWxpZGF0b3IoVmFsaWRhdGlvbktleXMuVFlQRSlcbmV4cG9ydCBjbGFzcyBUeXBlVmFsaWRhdG9yIGV4dGVuZHMgVmFsaWRhdG9yPFR5cGVWYWxpZGF0b3JPcHRpb25zPiB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZyA9IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuVFlQRSkge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFZhbGlkYXRlcyBhIG1vZGVsXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICAgKiBAcGFyYW0ge1R5cGVWYWxpZGF0b3JPcHRpb25zfSBvcHRpb25zXG4gICAqXG4gICAqIEByZXR1cm4ge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICpcbiAgICogQG92ZXJyaWRlXG4gICAqXG4gICAqIEBzZWUgVmFsaWRhdG9yI2hhc0Vycm9yc1xuICAgKi9cbiAgcHVibGljIGhhc0Vycm9ycyhcbiAgICB2YWx1ZTogYW55LFxuICAgIG9wdGlvbnM6IFR5cGVWYWxpZGF0b3JPcHRpb25zXG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybjsgLy8gRG9uJ3QgdHJ5IGFuZCBlbmZvcmNlIHR5cGUgaWYgdW5kZWZpbmVkXG4gICAgY29uc3QgeyB0eXBlcywgbWVzc2FnZSB9ID0gb3B0aW9ucztcbiAgICBpZiAoIVJlZmxlY3Rpb24uZXZhbHVhdGVEZXNpZ25UeXBlcyh2YWx1ZSwgdHlwZXMpKVxuICAgICAgcmV0dXJuIHRoaXMuZ2V0TWVzc2FnZShcbiAgICAgICAgbWVzc2FnZSB8fCB0aGlzLm1lc3NhZ2UsXG4gICAgICAgIHR5cGVvZiB0eXBlcyA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgID8gdHlwZXNcbiAgICAgICAgICA6IEFycmF5LmlzQXJyYXkodHlwZXMpXG4gICAgICAgICAgICA/IHR5cGVzLmpvaW4oXCIsIFwiKVxuICAgICAgICAgICAgOiB0eXBlcy5uYW1lLFxuICAgICAgICB0eXBlb2YgdmFsdWVcbiAgICAgICk7XG4gIH1cbn1cblxuVmFsaWRhdGlvbi5yZWdpc3Rlcih7XG4gIHZhbGlkYXRvcjogVHlwZVZhbGlkYXRvcixcbiAgdmFsaWRhdGlvbktleTogTW9kZWxLZXlzLlRZUEUsXG4gIHNhdmU6IGZhbHNlLFxufSBhcyBWYWxpZGF0b3JEZWZpbml0aW9uKTtcbiJdfQ==