@decaf-ts/decorator-validation 1.6.0 → 1.6.2

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 (132) hide show
  1. package/README.md +8 -2
  2. package/dist/decorator-validation.cjs +1169 -366
  3. package/dist/decorator-validation.esm.cjs +1139 -334
  4. package/lib/esm/index.d.ts +5 -36
  5. package/lib/esm/index.js +6 -37
  6. package/lib/esm/model/Model.d.ts +100 -29
  7. package/lib/esm/model/Model.js +103 -36
  8. package/lib/esm/model/constants.d.ts +3 -3
  9. package/lib/esm/model/constants.js +4 -4
  10. package/lib/esm/model/construction.d.ts +3 -3
  11. package/lib/esm/model/construction.js +4 -4
  12. package/lib/esm/model/decorators.d.ts +4 -4
  13. package/lib/esm/model/decorators.js +6 -5
  14. package/lib/esm/model/types.d.ts +30 -11
  15. package/lib/esm/model/types.js +1 -1
  16. package/lib/esm/model/validation.d.ts +2 -2
  17. package/lib/esm/model/validation.js +5 -5
  18. package/lib/esm/utils/Decoration.d.ts +123 -0
  19. package/lib/esm/utils/Decoration.js +188 -0
  20. package/lib/esm/utils/constants.d.ts +27 -9
  21. package/lib/esm/utils/constants.js +28 -10
  22. package/lib/esm/utils/dates.d.ts +26 -16
  23. package/lib/esm/utils/dates.js +27 -17
  24. package/lib/esm/utils/decorators.d.ts +41 -0
  25. package/lib/esm/utils/decorators.js +42 -1
  26. package/lib/esm/utils/hashing.d.ts +50 -6
  27. package/lib/esm/utils/hashing.js +49 -5
  28. package/lib/esm/utils/index.d.ts +1 -0
  29. package/lib/esm/utils/index.js +2 -1
  30. package/lib/esm/utils/registry.d.ts +2 -2
  31. package/lib/esm/utils/registry.js +1 -1
  32. package/lib/esm/utils/serialization.d.ts +1 -1
  33. package/lib/esm/utils/serialization.js +2 -2
  34. package/lib/esm/utils/strings.d.ts +4 -4
  35. package/lib/esm/utils/strings.js +5 -5
  36. package/lib/esm/utils/types.d.ts +123 -16
  37. package/lib/esm/utils/types.js +1 -1
  38. package/lib/esm/validation/Validators/DateValidator.d.ts +40 -8
  39. package/lib/esm/validation/Validators/DateValidator.js +41 -9
  40. package/lib/esm/validation/Validators/EmailValidator.d.ts +39 -7
  41. package/lib/esm/validation/Validators/EmailValidator.js +40 -8
  42. package/lib/esm/validation/Validators/ListValidator.d.ts +44 -6
  43. package/lib/esm/validation/Validators/ListValidator.js +45 -7
  44. package/lib/esm/validation/Validators/MaxLengthValidator.js +3 -3
  45. package/lib/esm/validation/Validators/MaxValidator.d.ts +52 -6
  46. package/lib/esm/validation/Validators/MaxValidator.js +53 -7
  47. package/lib/esm/validation/Validators/MinLengthValidator.js +3 -3
  48. package/lib/esm/validation/Validators/MinValidator.d.ts +52 -6
  49. package/lib/esm/validation/Validators/MinValidator.js +53 -7
  50. package/lib/esm/validation/Validators/PatternValidator.d.ts +75 -9
  51. package/lib/esm/validation/Validators/PatternValidator.js +76 -10
  52. package/lib/esm/validation/Validators/RequiredValidator.d.ts +52 -6
  53. package/lib/esm/validation/Validators/RequiredValidator.js +53 -7
  54. package/lib/esm/validation/Validators/TypeValidator.d.ts +60 -6
  55. package/lib/esm/validation/Validators/TypeValidator.js +69 -7
  56. package/lib/esm/validation/Validators/URLValidator.d.ts +41 -7
  57. package/lib/esm/validation/Validators/URLValidator.js +42 -8
  58. package/lib/esm/validation/Validators/Validator.d.ts +77 -14
  59. package/lib/esm/validation/Validators/Validator.js +68 -11
  60. package/lib/esm/validation/Validators/ValidatorRegistry.d.ts +1 -7
  61. package/lib/esm/validation/Validators/ValidatorRegistry.js +4 -11
  62. package/lib/esm/validation/Validators/constants.d.ts +16 -15
  63. package/lib/esm/validation/Validators/constants.js +2 -1
  64. package/lib/esm/validation/decorators.d.ts +50 -40
  65. package/lib/esm/validation/decorators.js +112 -63
  66. package/lib/esm/validation/types.d.ts +154 -36
  67. package/lib/esm/validation/types.js +2 -2
  68. package/lib/index.cjs +7 -38
  69. package/lib/index.d.ts +5 -36
  70. package/lib/model/Model.cjs +103 -38
  71. package/lib/model/Model.d.ts +100 -29
  72. package/lib/model/constants.cjs +4 -4
  73. package/lib/model/constants.d.ts +3 -3
  74. package/lib/model/construction.cjs +4 -4
  75. package/lib/model/construction.d.ts +3 -3
  76. package/lib/model/decorators.cjs +6 -5
  77. package/lib/model/decorators.d.ts +4 -4
  78. package/lib/model/types.cjs +1 -1
  79. package/lib/model/types.d.ts +30 -11
  80. package/lib/model/validation.cjs +4 -4
  81. package/lib/model/validation.d.ts +2 -2
  82. package/lib/utils/Decoration.cjs +192 -0
  83. package/lib/utils/Decoration.d.ts +123 -0
  84. package/lib/utils/constants.cjs +29 -11
  85. package/lib/utils/constants.d.ts +27 -9
  86. package/lib/utils/dates.cjs +27 -17
  87. package/lib/utils/dates.d.ts +26 -16
  88. package/lib/utils/decorators.cjs +42 -1
  89. package/lib/utils/decorators.d.ts +41 -0
  90. package/lib/utils/hashing.cjs +49 -5
  91. package/lib/utils/hashing.d.ts +50 -6
  92. package/lib/utils/index.cjs +2 -1
  93. package/lib/utils/index.d.ts +1 -0
  94. package/lib/utils/registry.cjs +1 -1
  95. package/lib/utils/registry.d.ts +2 -2
  96. package/lib/utils/serialization.cjs +2 -2
  97. package/lib/utils/serialization.d.ts +1 -1
  98. package/lib/utils/strings.cjs +5 -5
  99. package/lib/utils/strings.d.ts +4 -4
  100. package/lib/utils/types.cjs +1 -1
  101. package/lib/utils/types.d.ts +123 -16
  102. package/lib/validation/Validators/DateValidator.cjs +41 -9
  103. package/lib/validation/Validators/DateValidator.d.ts +40 -8
  104. package/lib/validation/Validators/EmailValidator.cjs +40 -8
  105. package/lib/validation/Validators/EmailValidator.d.ts +39 -7
  106. package/lib/validation/Validators/ListValidator.cjs +45 -7
  107. package/lib/validation/Validators/ListValidator.d.ts +44 -6
  108. package/lib/validation/Validators/MaxLengthValidator.cjs +3 -3
  109. package/lib/validation/Validators/MaxValidator.cjs +53 -7
  110. package/lib/validation/Validators/MaxValidator.d.ts +52 -6
  111. package/lib/validation/Validators/MinLengthValidator.cjs +3 -3
  112. package/lib/validation/Validators/MinValidator.cjs +53 -7
  113. package/lib/validation/Validators/MinValidator.d.ts +52 -6
  114. package/lib/validation/Validators/PatternValidator.cjs +76 -10
  115. package/lib/validation/Validators/PatternValidator.d.ts +75 -9
  116. package/lib/validation/Validators/RequiredValidator.cjs +53 -7
  117. package/lib/validation/Validators/RequiredValidator.d.ts +52 -6
  118. package/lib/validation/Validators/TypeValidator.cjs +69 -7
  119. package/lib/validation/Validators/TypeValidator.d.ts +60 -6
  120. package/lib/validation/Validators/URLValidator.cjs +42 -8
  121. package/lib/validation/Validators/URLValidator.d.ts +41 -7
  122. package/lib/validation/Validators/Validator.cjs +68 -11
  123. package/lib/validation/Validators/Validator.d.ts +77 -14
  124. package/lib/validation/Validators/ValidatorRegistry.cjs +4 -12
  125. package/lib/validation/Validators/ValidatorRegistry.d.ts +1 -7
  126. package/lib/validation/Validators/constants.cjs +2 -1
  127. package/lib/validation/Validators/constants.d.ts +16 -15
  128. package/lib/validation/decorators.cjs +112 -63
  129. package/lib/validation/decorators.d.ts +50 -40
  130. package/lib/validation/types.cjs +2 -1
  131. package/lib/validation/types.d.ts +154 -36
  132. package/package.json +2 -2
@@ -2,15 +2,55 @@ import { DEFAULT_ERROR_MESSAGES } from "./constants";
2
2
  import { sf } from "../../utils/strings";
3
3
  import { Reflection } from "@decaf-ts/reflection";
4
4
  /**
5
- * @summary Base Implementation for Validators
6
- * @description Provides the underlying functionality for {@link Validator}s
5
+ * @description Abstract base class for all validators in the validation framework
6
+ * @summary The Validator class provides the foundation for all validator implementations.
7
+ * It handles type checking, error message formatting, and defines the common interface
8
+ * that all validators must implement. This class is designed to be extended by specific
9
+ * validator implementations that provide concrete validation logic.
7
10
  *
8
- * @param {string} validationKey the key to register the validator under
9
- * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#DEFAULT}
10
- * @param {string[]} [acceptedTypes] defines the value types this validator can validate
11
+ * @param {string} message - Default error message to display when validation fails, defaults to {@link DEFAULT_ERROR_MESSAGES#DEFAULT}
12
+ * @param {string[]} acceptedTypes - Array of type names that this validator can validate
11
13
  *
12
14
  * @class Validator
13
15
  * @abstract
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * // Example of extending the Validator class to create a custom validator
20
+ * class CustomValidator extends Validator<CustomValidatorOptions> {
21
+ * constructor(message: string = "Custom validation failed") {
22
+ * // Specify that this validator accepts String and Number types
23
+ * super(message, String.name, Number.name);
24
+ * }
25
+ *
26
+ * public hasErrors(value: any, options?: CustomValidatorOptions): string | undefined {
27
+ * // Implement custom validation logic
28
+ * if (someCondition) {
29
+ * return this.getMessage(options?.message || this.message);
30
+ * }
31
+ * return undefined; // No errors
32
+ * }
33
+ * }
34
+ * ```
35
+ *
36
+ * @mermaid
37
+ * sequenceDiagram
38
+ * participant C as Client
39
+ * participant V as Validator Subclass
40
+ * participant B as Base Validator
41
+ *
42
+ * C->>V: new CustomValidator(message)
43
+ * V->>B: super(message, acceptedTypes)
44
+ * B->>B: Store message and types
45
+ * B->>B: Wrap hasErrors with type checking
46
+ * C->>V: hasErrors(value, options)
47
+ * alt value type not in acceptedTypes
48
+ * B-->>C: Type error message
49
+ * else value type is accepted
50
+ * V->>V: Custom validation logic
51
+ * V-->>C: Validation result
52
+ * end
53
+ *
14
54
  * @category Validators
15
55
  */
16
56
  export class Validator {
@@ -22,17 +62,27 @@ export class Validator {
22
62
  this.hasErrors = this.checkTypeAndHasErrors(this.hasErrors.bind(this));
23
63
  }
24
64
  /**
25
- * @summary builds the error message
26
- * @param {string} message
27
- * @param {any[]} args
65
+ * @description Formats an error message with optional arguments
66
+ * @summary Creates a formatted error message by replacing placeholders with provided arguments.
67
+ * This method uses the string formatting utility to generate consistent error messages
68
+ * across all validators.
69
+ *
70
+ * @param {string} message - The message template with placeholders
71
+ * @param {...any} args - Values to insert into the message template
72
+ * @return {string} The formatted error message
28
73
  * @protected
29
74
  */
30
75
  getMessage(message, ...args) {
31
76
  return sf(message, ...args);
32
77
  }
33
78
  /**
34
- * @summary Validates type
35
- * @param {any} unbound
79
+ * @description Creates a type-checking wrapper around the hasErrors method
80
+ * @summary Wraps the hasErrors method with type validation logic to ensure that
81
+ * the value being validated is of an accepted type before performing specific validation.
82
+ * This method is called during construction if acceptedTypes are provided.
83
+ *
84
+ * @param {Function} unbound - The original hasErrors method to be wrapped
85
+ * @return {Function} A new function that performs type checking before calling the original method
36
86
  * @private
37
87
  */
38
88
  checkTypeAndHasErrors(unbound) {
@@ -44,5 +94,12 @@ export class Validator {
44
94
  return unbound(value, ...args);
45
95
  }.bind(this);
46
96
  }
97
+ /**
98
+ * @summary Duck typing for Validators
99
+ * @param val
100
+ */
101
+ static isValidator(val) {
102
+ return val.constructor && !!val["hasErrors"];
103
+ }
47
104
  }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3ZhbGlkYXRpb24vVmFsaWRhdG9ycy9WYWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHbEQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLE9BQWdCLFNBQVM7SUFJN0IsWUFDRSxVQUFrQixzQkFBc0IsQ0FBQyxPQUFPLEVBQ2hELEdBQUcsYUFBdUI7UUFFMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFFdkIsSUFBSSxhQUFhLENBQUMsTUFBTTtZQUFFLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQzdELElBQUksSUFBSSxDQUFDLGFBQWE7WUFDcEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDTyxVQUFVLENBQUMsT0FBZSxFQUFFLEdBQUcsSUFBVztRQUNsRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLHFCQUFxQixDQUMzQixPQUEyRDtRQUUzRCxPQUFPLFVBRUwsS0FBVSxFQUNWLEdBQUcsSUFBVztZQUVkLElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhO2dCQUM1QyxPQUFPLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQztnQkFDbkQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUNwQixzQkFBc0IsQ0FBQyxJQUFJLEVBQzNCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUM3QixPQUFPLEtBQUssQ0FDYixDQUFDO1lBQ0osT0FBTyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNmLENBQUM7Q0FZRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERFRkFVTFRfRVJST1JfTUVTU0FHRVMgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IHNmIH0gZnJvbSBcIi4uLy4uL3V0aWxzL3N0cmluZ3NcIjtcbmltcG9ydCB7IFJlZmxlY3Rpb24gfSBmcm9tIFwiQGRlY2FmLXRzL3JlZmxlY3Rpb25cIjtcbmltcG9ydCB7IFZhbGlkYXRvck9wdGlvbnMgfSBmcm9tIFwiLi4vdHlwZXNcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBCYXNlIEltcGxlbWVudGF0aW9uIGZvciBWYWxpZGF0b3JzXG4gKiBAZGVzY3JpcHRpb24gUHJvdmlkZXMgdGhlIHVuZGVybHlpbmcgZnVuY3Rpb25hbGl0eSBmb3Ige0BsaW5rIFZhbGlkYXRvcn1zXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHZhbGlkYXRpb25LZXkgdGhlIGtleSB0byByZWdpc3RlciB0aGUgdmFsaWRhdG9yIHVuZGVyXG4gKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2VdIHRoZSBlcnJvciBtZXNzYWdlLiBEZWZhdWx0cyB0byB7QGxpbmsgREVGQVVMVF9FUlJPUl9NRVNTQUdFUyNERUZBVUxUfVxuICogQHBhcmFtIHtzdHJpbmdbXX0gW2FjY2VwdGVkVHlwZXNdIGRlZmluZXMgdGhlIHZhbHVlIHR5cGVzIHRoaXMgdmFsaWRhdG9yIGNhbiB2YWxpZGF0ZVxuICpcbiAqIEBjbGFzcyBWYWxpZGF0b3JcbiAqIEBhYnN0cmFjdFxuICogQGNhdGVnb3J5IFZhbGlkYXRvcnNcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFZhbGlkYXRvcjxWIGV4dGVuZHMgVmFsaWRhdG9yT3B0aW9ucyA9IFZhbGlkYXRvck9wdGlvbnM+IHtcbiAgcmVhZG9ubHkgbWVzc2FnZTogc3RyaW5nO1xuICByZWFkb25seSBhY2NlcHRlZFR5cGVzPzogc3RyaW5nW107XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIG1lc3NhZ2U6IHN0cmluZyA9IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuREVGQVVMVCxcbiAgICAuLi5hY2NlcHRlZFR5cGVzOiBzdHJpbmdbXVxuICApIHtcbiAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlO1xuXG4gICAgaWYgKGFjY2VwdGVkVHlwZXMubGVuZ3RoKSB0aGlzLmFjY2VwdGVkVHlwZXMgPSBhY2NlcHRlZFR5cGVzO1xuICAgIGlmICh0aGlzLmFjY2VwdGVkVHlwZXMpXG4gICAgICB0aGlzLmhhc0Vycm9ycyA9IHRoaXMuY2hlY2tUeXBlQW5kSGFzRXJyb3JzKHRoaXMuaGFzRXJyb3JzLmJpbmQodGhpcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IGJ1aWxkcyB0aGUgZXJyb3IgbWVzc2FnZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZVxuICAgKiBAcGFyYW0ge2FueVtdfSBhcmdzXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBnZXRNZXNzYWdlKG1lc3NhZ2U6IHN0cmluZywgLi4uYXJnczogYW55W10pIHtcbiAgICByZXR1cm4gc2YobWVzc2FnZSwgLi4uYXJncyk7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgVmFsaWRhdGVzIHR5cGVcbiAgICogQHBhcmFtIHthbnl9IHVuYm91bmRcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgY2hlY2tUeXBlQW5kSGFzRXJyb3JzKFxuICAgIHVuYm91bmQ6ICh2YWx1ZTogYW55LCAuLi5hcmdzOiBhbnlbXSkgPT4gc3RyaW5nIHwgdW5kZWZpbmVkXG4gICkge1xuICAgIHJldHVybiBmdW5jdGlvbiAoXG4gICAgICB0aGlzOiBWYWxpZGF0b3IsXG4gICAgICB2YWx1ZTogYW55LFxuICAgICAgLi4uYXJnczogYW55W11cbiAgICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgIXRoaXMuYWNjZXB0ZWRUeXBlcylcbiAgICAgICAgcmV0dXJuIHVuYm91bmQodmFsdWUsIC4uLmFyZ3MpO1xuICAgICAgaWYgKCFSZWZsZWN0aW9uLmNoZWNrVHlwZXModmFsdWUsIHRoaXMuYWNjZXB0ZWRUeXBlcykpXG4gICAgICAgIHJldHVybiB0aGlzLmdldE1lc3NhZ2UoXG4gICAgICAgICAgREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5UWVBFLFxuICAgICAgICAgIHRoaXMuYWNjZXB0ZWRUeXBlcy5qb2luKFwiLCBcIiksXG4gICAgICAgICAgdHlwZW9mIHZhbHVlXG4gICAgICAgICk7XG4gICAgICByZXR1cm4gdW5ib3VuZCh2YWx1ZSwgLi4uYXJncyk7XG4gICAgfS5iaW5kKHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFZhbGlkYXRlcyBhbiBhdHRyaWJ1dGVcbiAgICogQHBhcmFtIHthbnl9IHZhbHVlXG4gICAqIEBwYXJhbSB7VmFsaWRhdG9yT3B0aW9uc30gW29wdGlvbnNdIFZhbGlkYXRlIG9wdGlvbnMgZm9yIGN1c3RvbWl6aW5nIHRoZSBtb2RlbCB2YWxpZGF0aW9uIGJlaGF2aW9yXG4gICAqXG4gICAqIEBhYnN0cmFjdFxuICAgKlxuICAgKiBAc2VlIE1vZGVsI2hhc0Vycm9yc1xuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IGhhc0Vycm9ycyh2YWx1ZTogYW55LCBvcHRpb25zPzogVik6IHN0cmluZyB8IHVuZGVmaW5lZDtcbn1cbiJdfQ==
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3ZhbGlkYXRpb24vVmFsaWRhdG9ycy9WYWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHbEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1ERztBQUNILE1BQU0sT0FBZ0IsU0FBUztJQUk3QixZQUNFLFVBQWtCLHNCQUFzQixDQUFDLE9BQU8sRUFDaEQsR0FBRyxhQUF1QjtRQUUxQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUV2QixJQUFJLGFBQWEsQ0FBQyxNQUFNO1lBQUUsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDN0QsSUFBSSxJQUFJLENBQUMsYUFBYTtZQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ08sVUFBVSxDQUFDLE9BQWUsRUFBRSxHQUFHLElBQVc7UUFDbEQsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNLLHFCQUFxQixDQUMzQixPQUEyRDtRQUUzRCxPQUFPLFVBRUwsS0FBVSxFQUNWLEdBQUcsSUFBVztZQUVkLElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhO2dCQUM1QyxPQUFPLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQztnQkFDbkQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUNwQixzQkFBc0IsQ0FBQyxJQUFJLEVBQzNCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUM3QixPQUFPLEtBQUssQ0FDYixDQUFDO1lBQ0osT0FBTyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNmLENBQUM7SUFxQkQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFRO1FBQ3pCLE9BQU8sR0FBRyxDQUFDLFdBQVcsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9DLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERFRkFVTFRfRVJST1JfTUVTU0FHRVMgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IHNmIH0gZnJvbSBcIi4uLy4uL3V0aWxzL3N0cmluZ3NcIjtcbmltcG9ydCB7IFJlZmxlY3Rpb24gfSBmcm9tIFwiQGRlY2FmLXRzL3JlZmxlY3Rpb25cIjtcbmltcG9ydCB7IFZhbGlkYXRvck9wdGlvbnMgfSBmcm9tIFwiLi4vdHlwZXNcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQWJzdHJhY3QgYmFzZSBjbGFzcyBmb3IgYWxsIHZhbGlkYXRvcnMgaW4gdGhlIHZhbGlkYXRpb24gZnJhbWV3b3JrXG4gKiBAc3VtbWFyeSBUaGUgVmFsaWRhdG9yIGNsYXNzIHByb3ZpZGVzIHRoZSBmb3VuZGF0aW9uIGZvciBhbGwgdmFsaWRhdG9yIGltcGxlbWVudGF0aW9ucy5cbiAqIEl0IGhhbmRsZXMgdHlwZSBjaGVja2luZywgZXJyb3IgbWVzc2FnZSBmb3JtYXR0aW5nLCBhbmQgZGVmaW5lcyB0aGUgY29tbW9uIGludGVyZmFjZVxuICogdGhhdCBhbGwgdmFsaWRhdG9ycyBtdXN0IGltcGxlbWVudC4gVGhpcyBjbGFzcyBpcyBkZXNpZ25lZCB0byBiZSBleHRlbmRlZCBieSBzcGVjaWZpY1xuICogdmFsaWRhdG9yIGltcGxlbWVudGF0aW9ucyB0aGF0IHByb3ZpZGUgY29uY3JldGUgdmFsaWRhdGlvbiBsb2dpYy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSAtIERlZmF1bHQgZXJyb3IgbWVzc2FnZSB0byBkaXNwbGF5IHdoZW4gdmFsaWRhdGlvbiBmYWlscywgZGVmYXVsdHMgdG8ge0BsaW5rIERFRkFVTFRfRVJST1JfTUVTU0FHRVMjREVGQVVMVH1cbiAqIEBwYXJhbSB7c3RyaW5nW119IGFjY2VwdGVkVHlwZXMgLSBBcnJheSBvZiB0eXBlIG5hbWVzIHRoYXQgdGhpcyB2YWxpZGF0b3IgY2FuIHZhbGlkYXRlXG4gKlxuICogQGNsYXNzIFZhbGlkYXRvclxuICogQGFic3RyYWN0XG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIEV4YW1wbGUgb2YgZXh0ZW5kaW5nIHRoZSBWYWxpZGF0b3IgY2xhc3MgdG8gY3JlYXRlIGEgY3VzdG9tIHZhbGlkYXRvclxuICogY2xhc3MgQ3VzdG9tVmFsaWRhdG9yIGV4dGVuZHMgVmFsaWRhdG9yPEN1c3RvbVZhbGlkYXRvck9wdGlvbnM+IHtcbiAqICAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nID0gXCJDdXN0b20gdmFsaWRhdGlvbiBmYWlsZWRcIikge1xuICogICAgIC8vIFNwZWNpZnkgdGhhdCB0aGlzIHZhbGlkYXRvciBhY2NlcHRzIFN0cmluZyBhbmQgTnVtYmVyIHR5cGVzXG4gKiAgICAgc3VwZXIobWVzc2FnZSwgU3RyaW5nLm5hbWUsIE51bWJlci5uYW1lKTtcbiAqICAgfVxuICpcbiAqICAgcHVibGljIGhhc0Vycm9ycyh2YWx1ZTogYW55LCBvcHRpb25zPzogQ3VzdG9tVmFsaWRhdG9yT3B0aW9ucyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gKiAgICAgLy8gSW1wbGVtZW50IGN1c3RvbSB2YWxpZGF0aW9uIGxvZ2ljXG4gKiAgICAgaWYgKHNvbWVDb25kaXRpb24pIHtcbiAqICAgICAgIHJldHVybiB0aGlzLmdldE1lc3NhZ2Uob3B0aW9ucz8ubWVzc2FnZSB8fCB0aGlzLm1lc3NhZ2UpO1xuICogICAgIH1cbiAqICAgICByZXR1cm4gdW5kZWZpbmVkOyAvLyBObyBlcnJvcnNcbiAqICAgfVxuICogfVxuICogYGBgXG4gKlxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDIGFzIENsaWVudFxuICogICBwYXJ0aWNpcGFudCBWIGFzIFZhbGlkYXRvciBTdWJjbGFzc1xuICogICBwYXJ0aWNpcGFudCBCIGFzIEJhc2UgVmFsaWRhdG9yXG4gKlxuICogICBDLT4+VjogbmV3IEN1c3RvbVZhbGlkYXRvcihtZXNzYWdlKVxuICogICBWLT4+Qjogc3VwZXIobWVzc2FnZSwgYWNjZXB0ZWRUeXBlcylcbiAqICAgQi0+PkI6IFN0b3JlIG1lc3NhZ2UgYW5kIHR5cGVzXG4gKiAgIEItPj5COiBXcmFwIGhhc0Vycm9ycyB3aXRoIHR5cGUgY2hlY2tpbmdcbiAqICAgQy0+PlY6IGhhc0Vycm9ycyh2YWx1ZSwgb3B0aW9ucylcbiAqICAgYWx0IHZhbHVlIHR5cGUgbm90IGluIGFjY2VwdGVkVHlwZXNcbiAqICAgICBCLS0+PkM6IFR5cGUgZXJyb3IgbWVzc2FnZVxuICogICBlbHNlIHZhbHVlIHR5cGUgaXMgYWNjZXB0ZWRcbiAqICAgICBWLT4+VjogQ3VzdG9tIHZhbGlkYXRpb24gbG9naWNcbiAqICAgICBWLS0+PkM6IFZhbGlkYXRpb24gcmVzdWx0XG4gKiAgIGVuZFxuICpcbiAqIEBjYXRlZ29yeSBWYWxpZGF0b3JzXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBWYWxpZGF0b3I8ViBleHRlbmRzIFZhbGlkYXRvck9wdGlvbnMgPSBWYWxpZGF0b3JPcHRpb25zPiB7XG4gIHJlYWRvbmx5IG1lc3NhZ2U6IHN0cmluZztcbiAgcmVhZG9ubHkgYWNjZXB0ZWRUeXBlcz86IHN0cmluZ1tdO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICBtZXNzYWdlOiBzdHJpbmcgPSBERUZBVUxUX0VSUk9SX01FU1NBR0VTLkRFRkFVTFQsXG4gICAgLi4uYWNjZXB0ZWRUeXBlczogc3RyaW5nW11cbiAgKSB7XG4gICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZTtcblxuICAgIGlmIChhY2NlcHRlZFR5cGVzLmxlbmd0aCkgdGhpcy5hY2NlcHRlZFR5cGVzID0gYWNjZXB0ZWRUeXBlcztcbiAgICBpZiAodGhpcy5hY2NlcHRlZFR5cGVzKVxuICAgICAgdGhpcy5oYXNFcnJvcnMgPSB0aGlzLmNoZWNrVHlwZUFuZEhhc0Vycm9ycyh0aGlzLmhhc0Vycm9ycy5iaW5kKHRoaXMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRm9ybWF0cyBhbiBlcnJvciBtZXNzYWdlIHdpdGggb3B0aW9uYWwgYXJndW1lbnRzXG4gICAqIEBzdW1tYXJ5IENyZWF0ZXMgYSBmb3JtYXR0ZWQgZXJyb3IgbWVzc2FnZSBieSByZXBsYWNpbmcgcGxhY2Vob2xkZXJzIHdpdGggcHJvdmlkZWQgYXJndW1lbnRzLlxuICAgKiBUaGlzIG1ldGhvZCB1c2VzIHRoZSBzdHJpbmcgZm9ybWF0dGluZyB1dGlsaXR5IHRvIGdlbmVyYXRlIGNvbnNpc3RlbnQgZXJyb3IgbWVzc2FnZXNcbiAgICogYWNyb3NzIGFsbCB2YWxpZGF0b3JzLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSAtIFRoZSBtZXNzYWdlIHRlbXBsYXRlIHdpdGggcGxhY2Vob2xkZXJzXG4gICAqIEBwYXJhbSB7Li4uYW55fSBhcmdzIC0gVmFsdWVzIHRvIGluc2VydCBpbnRvIHRoZSBtZXNzYWdlIHRlbXBsYXRlXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIGZvcm1hdHRlZCBlcnJvciBtZXNzYWdlXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBnZXRNZXNzYWdlKG1lc3NhZ2U6IHN0cmluZywgLi4uYXJnczogYW55W10pIHtcbiAgICByZXR1cm4gc2YobWVzc2FnZSwgLi4uYXJncyk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSB0eXBlLWNoZWNraW5nIHdyYXBwZXIgYXJvdW5kIHRoZSBoYXNFcnJvcnMgbWV0aG9kXG4gICAqIEBzdW1tYXJ5IFdyYXBzIHRoZSBoYXNFcnJvcnMgbWV0aG9kIHdpdGggdHlwZSB2YWxpZGF0aW9uIGxvZ2ljIHRvIGVuc3VyZSB0aGF0XG4gICAqIHRoZSB2YWx1ZSBiZWluZyB2YWxpZGF0ZWQgaXMgb2YgYW4gYWNjZXB0ZWQgdHlwZSBiZWZvcmUgcGVyZm9ybWluZyBzcGVjaWZpYyB2YWxpZGF0aW9uLlxuICAgKiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgZHVyaW5nIGNvbnN0cnVjdGlvbiBpZiBhY2NlcHRlZFR5cGVzIGFyZSBwcm92aWRlZC5cbiAgICpcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gdW5ib3VuZCAtIFRoZSBvcmlnaW5hbCBoYXNFcnJvcnMgbWV0aG9kIHRvIGJlIHdyYXBwZWRcbiAgICogQHJldHVybiB7RnVuY3Rpb259IEEgbmV3IGZ1bmN0aW9uIHRoYXQgcGVyZm9ybXMgdHlwZSBjaGVja2luZyBiZWZvcmUgY2FsbGluZyB0aGUgb3JpZ2luYWwgbWV0aG9kXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGNoZWNrVHlwZUFuZEhhc0Vycm9ycyhcbiAgICB1bmJvdW5kOiAodmFsdWU6IGFueSwgLi4uYXJnczogYW55W10pID0+IHN0cmluZyB8IHVuZGVmaW5lZFxuICApIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gKFxuICAgICAgdGhpczogVmFsaWRhdG9yLFxuICAgICAgdmFsdWU6IGFueSxcbiAgICAgIC4uLmFyZ3M6IGFueVtdXG4gICAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8ICF0aGlzLmFjY2VwdGVkVHlwZXMpXG4gICAgICAgIHJldHVybiB1bmJvdW5kKHZhbHVlLCAuLi5hcmdzKTtcbiAgICAgIGlmICghUmVmbGVjdGlvbi5jaGVja1R5cGVzKHZhbHVlLCB0aGlzLmFjY2VwdGVkVHlwZXMpKVxuICAgICAgICByZXR1cm4gdGhpcy5nZXRNZXNzYWdlKFxuICAgICAgICAgIERFRkFVTFRfRVJST1JfTUVTU0FHRVMuVFlQRSxcbiAgICAgICAgICB0aGlzLmFjY2VwdGVkVHlwZXMuam9pbihcIiwgXCIpLFxuICAgICAgICAgIHR5cGVvZiB2YWx1ZVxuICAgICAgICApO1xuICAgICAgcmV0dXJuIHVuYm91bmQodmFsdWUsIC4uLmFyZ3MpO1xuICAgIH0uYmluZCh0aGlzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVmFsaWRhdGVzIGEgdmFsdWUgYWdhaW5zdCBzcGVjaWZpYyB2YWxpZGF0aW9uIHJ1bGVzXG4gICAqIEBzdW1tYXJ5IEFic3RyYWN0IG1ldGhvZCB0aGF0IG11c3QgYmUgaW1wbGVtZW50ZWQgYnkgYWxsIHZhbGlkYXRvciBzdWJjbGFzc2VzLlxuICAgKiBUaGlzIG1ldGhvZCBjb250YWlucyB0aGUgY29yZSB2YWxpZGF0aW9uIGxvZ2ljIHRoYXQgZGV0ZXJtaW5lcyB3aGV0aGVyIGEgdmFsdWVcbiAgICogaXMgdmFsaWQgYWNjb3JkaW5nIHRvIHRoZSBzcGVjaWZpYyBydWxlcyBvZiB0aGUgdmFsaWRhdG9yLiBJZiB0aGUgdmFsdWUgaXMgdmFsaWQsXG4gICAqIHRoZSBtZXRob2QgcmV0dXJucyB1bmRlZmluZWQ7IG90aGVyd2lzZSwgaXQgcmV0dXJucyBhbiBlcnJvciBtZXNzYWdlLlxuICAgKlxuICAgKiBAdGVtcGxhdGUgViAtIFR5cGUgb2YgdGhlIG9wdGlvbnMgb2JqZWN0IHRoYXQgY2FuIGJlIHBhc3NlZCB0byB0aGUgdmFsaWRhdG9yXG4gICAqIEBwYXJhbSB7YW55fSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byB2YWxpZGF0ZVxuICAgKiBAcGFyYW0ge1Z9IFtvcHRpb25zXSAtIE9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgY3VzdG9taXppbmcgdmFsaWRhdGlvbiBiZWhhdmlvclxuICAgKlxuICAgKiBAcmV0dXJuIHtzdHJpbmcgfCB1bmRlZmluZWR9IEVycm9yIG1lc3NhZ2UgaWYgdmFsaWRhdGlvbiBmYWlscywgdW5kZWZpbmVkIGlmIHZhbGlkYXRpb24gcGFzc2VzXG4gICAqXG4gICAqIEBhYnN0cmFjdFxuICAgKlxuICAgKiBAc2VlIE1vZGVsI3ZhbGlkYXRlXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgaGFzRXJyb3JzKHZhbHVlOiBhbnksIG9wdGlvbnM/OiBWKTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBEdWNrIHR5cGluZyBmb3IgVmFsaWRhdG9yc1xuICAgKiBAcGFyYW0gdmFsXG4gICAqL1xuICBzdGF0aWMgaXNWYWxpZGF0b3IodmFsOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdmFsLmNvbnN0cnVjdG9yICYmICEhdmFsW1wiaGFzRXJyb3JzXCJdO1xuICB9XG59XG4iXX0=
@@ -1,12 +1,6 @@
1
1
  import { ValidatorDefinition } from "../types";
2
2
  import { IValidatorRegistry } from "../types";
3
- import type { Validator } from "./Validator";
4
- /**
5
- * @summary Duck typing for Validators
6
- * @function isValidator
7
- * @param val
8
- */
9
- export declare function isValidator(val: any): any;
3
+ import { Validator } from "./Validator";
10
4
  /**
11
5
  * @summary Base Implementation of a Validator Registry
12
6
  *
@@ -1,11 +1,4 @@
1
- /**
2
- * @summary Duck typing for Validators
3
- * @function isValidator
4
- * @param val
5
- */
6
- export function isValidator(val) {
7
- return val.constructor && val["hasErrors"];
8
- }
1
+ import { Validator } from "./Validator";
9
2
  /**
10
3
  * @summary Base Implementation of a Validator Registry
11
4
  *
@@ -44,7 +37,7 @@ export class ValidatorRegistry {
44
37
  if (!(validatorKey in this.cache))
45
38
  return undefined;
46
39
  const classOrInstance = this.cache[validatorKey];
47
- if (isValidator(classOrInstance))
40
+ if (Validator.isValidator(classOrInstance))
48
41
  return classOrInstance;
49
42
  const constructor = classOrInstance.default || classOrInstance;
50
43
  const instance = new constructor();
@@ -58,7 +51,7 @@ export class ValidatorRegistry {
58
51
  */
59
52
  register(...validator) {
60
53
  validator.forEach((v) => {
61
- if (isValidator(v)) {
54
+ if (Validator.isValidator(v)) {
62
55
  // const k =
63
56
  if (v.validationKey in this.cache)
64
57
  return;
@@ -78,4 +71,4 @@ export class ValidatorRegistry {
78
71
  });
79
72
  }
80
73
  }
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmFsaWRhdG9yUmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdmFsaWRhdGlvbi9WYWxpZGF0b3JzL1ZhbGlkYXRvclJlZ2lzdHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUFDLEdBQVE7SUFDbEMsT0FBTyxHQUFHLENBQUMsV0FBVyxJQUFJLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxPQUFPLGlCQUFpQjtJQU01QixZQUFZLEdBQUcsVUFBK0M7UUFIdEQsVUFBSyxHQUFRLEVBQUUsQ0FBQztRQUl0QixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsYUFBYTtRQUNYLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7T0FFRztJQUNILE9BQU87UUFDTCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEdBQUcsQ0FBc0IsWUFBb0I7UUFDM0MsSUFBSSxDQUFDLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUM7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUVwRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2pELElBQUksV0FBVyxDQUFDLGVBQWUsQ0FBQztZQUFFLE9BQU8sZUFBb0IsQ0FBQztRQUM5RCxNQUFNLFdBQVcsR0FBRyxlQUFlLENBQUMsT0FBTyxJQUFJLGVBQWUsQ0FBQztRQUMvRCxNQUFNLFFBQVEsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsUUFBUSxDQUFDO1FBQ3BDLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsUUFBUSxDQUNOLEdBQUcsU0FBc0M7UUFFekMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3RCLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ25CLFlBQVk7Z0JBRVosSUFBSyxDQUF5QixDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsS0FBSztvQkFBRSxPQUFPO2dCQUNuRSxJQUFJLENBQUMsS0FBSyxDQUFFLENBQXlCLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzNELENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUF3QixDQUFDO2dCQUNwRSxJQUFJLGFBQWEsSUFBSSxJQUFJLENBQUMsS0FBSztvQkFBRSxPQUFPO2dCQUN4QyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLFNBQVMsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLElBQUk7b0JBQUUsT0FBTztnQkFDbEIsTUFBTSxHQUFHLEdBQTJCLEVBQUUsQ0FBQztnQkFDdkMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxHQUFHLGFBQWEsQ0FBQztnQkFFakQsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3BFLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbGlkYXRvckRlZmluaXRpb24gfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IElWYWxpZGF0b3JSZWdpc3RyeSB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBWYWxpZGF0b3IgfSBmcm9tIFwiLi9WYWxpZGF0b3JcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBEdWNrIHR5cGluZyBmb3IgVmFsaWRhdG9yc1xuICogQGZ1bmN0aW9uIGlzVmFsaWRhdG9yXG4gKiBAcGFyYW0gdmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkYXRvcih2YWw6IGFueSkge1xuICByZXR1cm4gdmFsLmNvbnN0cnVjdG9yICYmIHZhbFtcImhhc0Vycm9yc1wiXTtcbn1cblxuLyoqXG4gKiBAc3VtbWFyeSBCYXNlIEltcGxlbWVudGF0aW9uIG9mIGEgVmFsaWRhdG9yIFJlZ2lzdHJ5XG4gKlxuICogQHByb3Age1ZhbGlkYXRvcltdfSBbdmFsaWRhdG9yc10gdGhlIGluaXRpYWwgdmFsaWRhdG9ycyB0byByZWdpc3RlclxuICpcbiAqIEBjbGFzcyBWYWxpZGF0b3JSZWdpc3RyeVxuICogQGltcGxlbWVudHMgSVZhbGlkYXRvclJlZ2lzdHJ5PFQ+XG4gKlxuICogQGNhdGVnb3J5IFZhbGlkYXRpb25cbiAqL1xuZXhwb3J0IGNsYXNzIFZhbGlkYXRvclJlZ2lzdHJ5PFQgZXh0ZW5kcyBWYWxpZGF0b3I+XG4gIGltcGxlbWVudHMgSVZhbGlkYXRvclJlZ2lzdHJ5PFQ+XG57XG4gIHByaXZhdGUgY2FjaGU6IGFueSA9IHt9O1xuICBwcml2YXRlIGN1c3RvbUtleUNhY2hlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG4gIGNvbnN0cnVjdG9yKC4uLnZhbGlkYXRvcnM6IChWYWxpZGF0b3JEZWZpbml0aW9uIHwgVmFsaWRhdG9yKVtdKSB7XG4gICAgdGhpcy5jdXN0b21LZXlDYWNoZSA9IHt9O1xuICAgIHRoaXMucmVnaXN0ZXIoLi4udmFsaWRhdG9ycyk7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgcmV0cmlldmVzIHRoZSBjdXN0b20ga2V5c1xuICAgKi9cbiAgZ2V0Q3VzdG9tS2V5cygpOiB7IFtpbmRleGVyOiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHRoaXMuY3VzdG9tS2V5Q2FjaGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IHJldHJpZXZlcyB0aGUgcmVnaXN0ZXJlZCB2YWxpZGF0b3JzIGtleXNcbiAgICovXG4gIGdldEtleXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLmNhY2hlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBSZXRyaWV2ZXMgYSB2YWxpZGF0b3JcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbGlkYXRvcktleSBvbmUgb2YgdGhlIHtAbGluayBWYWxpZGF0aW9uS2V5c31cbiAgICogQHJldHVybiB7VmFsaWRhdG9yIHwgdW5kZWZpbmVkfSB0aGUgcmVnaXN0ZXJlZCBWYWxpZGF0b3Igb3IgdW5kZWZpbmVkIGlmIHRoZXJlIGlzIG5vbm8gbWF0Y2hpbmcgdGhlIHByb3ZpZGVkIGtleVxuICAgKi9cbiAgZ2V0PFQgZXh0ZW5kcyBWYWxpZGF0b3I+KHZhbGlkYXRvcktleTogc3RyaW5nKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCEodmFsaWRhdG9yS2V5IGluIHRoaXMuY2FjaGUpKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgY2xhc3NPckluc3RhbmNlID0gdGhpcy5jYWNoZVt2YWxpZGF0b3JLZXldO1xuICAgIGlmIChpc1ZhbGlkYXRvcihjbGFzc09ySW5zdGFuY2UpKSByZXR1cm4gY2xhc3NPckluc3RhbmNlIGFzIFQ7XG4gICAgY29uc3QgY29uc3RydWN0b3IgPSBjbGFzc09ySW5zdGFuY2UuZGVmYXVsdCB8fCBjbGFzc09ySW5zdGFuY2U7XG4gICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgY29uc3RydWN0b3IoKTtcbiAgICB0aGlzLmNhY2hlW3ZhbGlkYXRvcktleV0gPSBpbnN0YW5jZTtcbiAgICByZXR1cm4gaW5zdGFuY2U7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgUmVnaXN0ZXJzIHRoZSBwcm92aWRlZCB2YWxpZGF0b3JzIG9udG8gdGhlIHJlZ2lzdHJ5XG4gICAqXG4gICAqIEBwYXJhbSB7VFtdIHwgVmFsaWRhdG9yRGVmaW5pdGlvbltdfSB2YWxpZGF0b3JcbiAgICovXG4gIHJlZ2lzdGVyPFQgZXh0ZW5kcyBWYWxpZGF0b3I+KFxuICAgIC4uLnZhbGlkYXRvcjogKFZhbGlkYXRvckRlZmluaXRpb24gfCBUKVtdXG4gICk6IHZvaWQge1xuICAgIHZhbGlkYXRvci5mb3JFYWNoKCh2KSA9PiB7XG4gICAgICBpZiAoaXNWYWxpZGF0b3IodikpIHtcbiAgICAgICAgLy8gY29uc3QgayA9XG5cbiAgICAgICAgaWYgKCh2IGFzIFZhbGlkYXRvckRlZmluaXRpb24pLnZhbGlkYXRpb25LZXkgaW4gdGhpcy5jYWNoZSkgcmV0dXJuO1xuICAgICAgICB0aGlzLmNhY2hlWyh2IGFzIFZhbGlkYXRvckRlZmluaXRpb24pLnZhbGlkYXRpb25LZXldID0gdjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHsgdmFsaWRhdGlvbktleSwgdmFsaWRhdG9yLCBzYXZlIH0gPSB2IGFzIFZhbGlkYXRvckRlZmluaXRpb247XG4gICAgICAgIGlmICh2YWxpZGF0aW9uS2V5IGluIHRoaXMuY2FjaGUpIHJldHVybjtcbiAgICAgICAgdGhpcy5jYWNoZVt2YWxpZGF0aW9uS2V5XSA9IHZhbGlkYXRvcjtcbiAgICAgICAgaWYgKCFzYXZlKSByZXR1cm47XG4gICAgICAgIGNvbnN0IG9iajogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICAgICAgICBvYmpbdmFsaWRhdGlvbktleS50b1VwcGVyQ2FzZSgpXSA9IHZhbGlkYXRpb25LZXk7XG5cbiAgICAgICAgdGhpcy5jdXN0b21LZXlDYWNoZSA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuY3VzdG9tS2V5Q2FjaGUsIG9iaik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmFsaWRhdG9yUmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdmFsaWRhdGlvbi9WYWxpZGF0b3JzL1ZhbGlkYXRvclJlZ2lzdHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFeEM7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxPQUFPLGlCQUFpQjtJQU01QixZQUFZLEdBQUcsVUFBK0M7UUFIdEQsVUFBSyxHQUFRLEVBQUUsQ0FBQztRQUl0QixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsYUFBYTtRQUNYLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7T0FFRztJQUNILE9BQU87UUFDTCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEdBQUcsQ0FBc0IsWUFBb0I7UUFDM0MsSUFBSSxDQUFDLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUM7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUVwRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2pELElBQUksU0FBUyxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUM7WUFBRSxPQUFPLGVBQW9CLENBQUM7UUFDeEUsTUFBTSxXQUFXLEdBQUcsZUFBZSxDQUFDLE9BQU8sSUFBSSxlQUFlLENBQUM7UUFDL0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUNwQyxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVEsQ0FDTixHQUFHLFNBQXNDO1FBRXpDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN0QixJQUFJLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDN0IsWUFBWTtnQkFFWixJQUFLLENBQXlCLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxLQUFLO29CQUFFLE9BQU87Z0JBQ25FLElBQUksQ0FBQyxLQUFLLENBQUUsQ0FBeUIsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0QsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLENBQXdCLENBQUM7Z0JBQ3BFLElBQUksYUFBYSxJQUFJLElBQUksQ0FBQyxLQUFLO29CQUFFLE9BQU87Z0JBQ3hDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsU0FBUyxDQUFDO2dCQUN0QyxJQUFJLENBQUMsSUFBSTtvQkFBRSxPQUFPO2dCQUNsQixNQUFNLEdBQUcsR0FBMkIsRUFBRSxDQUFDO2dCQUN2QyxHQUFHLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcsYUFBYSxDQUFDO2dCQUVqRCxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDcEUsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yRGVmaW5pdGlvbiB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgSVZhbGlkYXRvclJlZ2lzdHJ5IH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBWYWxpZGF0b3IgfSBmcm9tIFwiLi9WYWxpZGF0b3JcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBCYXNlIEltcGxlbWVudGF0aW9uIG9mIGEgVmFsaWRhdG9yIFJlZ2lzdHJ5XG4gKlxuICogQHByb3Age1ZhbGlkYXRvcltdfSBbdmFsaWRhdG9yc10gdGhlIGluaXRpYWwgdmFsaWRhdG9ycyB0byByZWdpc3RlclxuICpcbiAqIEBjbGFzcyBWYWxpZGF0b3JSZWdpc3RyeVxuICogQGltcGxlbWVudHMgSVZhbGlkYXRvclJlZ2lzdHJ5PFQ+XG4gKlxuICogQGNhdGVnb3J5IFZhbGlkYXRpb25cbiAqL1xuZXhwb3J0IGNsYXNzIFZhbGlkYXRvclJlZ2lzdHJ5PFQgZXh0ZW5kcyBWYWxpZGF0b3I+XG4gIGltcGxlbWVudHMgSVZhbGlkYXRvclJlZ2lzdHJ5PFQ+XG57XG4gIHByaXZhdGUgY2FjaGU6IGFueSA9IHt9O1xuICBwcml2YXRlIGN1c3RvbUtleUNhY2hlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG4gIGNvbnN0cnVjdG9yKC4uLnZhbGlkYXRvcnM6IChWYWxpZGF0b3JEZWZpbml0aW9uIHwgVmFsaWRhdG9yKVtdKSB7XG4gICAgdGhpcy5jdXN0b21LZXlDYWNoZSA9IHt9O1xuICAgIHRoaXMucmVnaXN0ZXIoLi4udmFsaWRhdG9ycyk7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgcmV0cmlldmVzIHRoZSBjdXN0b20ga2V5c1xuICAgKi9cbiAgZ2V0Q3VzdG9tS2V5cygpOiB7IFtpbmRleGVyOiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHRoaXMuY3VzdG9tS2V5Q2FjaGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IHJldHJpZXZlcyB0aGUgcmVnaXN0ZXJlZCB2YWxpZGF0b3JzIGtleXNcbiAgICovXG4gIGdldEtleXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLmNhY2hlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBSZXRyaWV2ZXMgYSB2YWxpZGF0b3JcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbGlkYXRvcktleSBvbmUgb2YgdGhlIHtAbGluayBWYWxpZGF0aW9uS2V5c31cbiAgICogQHJldHVybiB7VmFsaWRhdG9yIHwgdW5kZWZpbmVkfSB0aGUgcmVnaXN0ZXJlZCBWYWxpZGF0b3Igb3IgdW5kZWZpbmVkIGlmIHRoZXJlIGlzIG5vbm8gbWF0Y2hpbmcgdGhlIHByb3ZpZGVkIGtleVxuICAgKi9cbiAgZ2V0PFQgZXh0ZW5kcyBWYWxpZGF0b3I+KHZhbGlkYXRvcktleTogc3RyaW5nKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCEodmFsaWRhdG9yS2V5IGluIHRoaXMuY2FjaGUpKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgY2xhc3NPckluc3RhbmNlID0gdGhpcy5jYWNoZVt2YWxpZGF0b3JLZXldO1xuICAgIGlmIChWYWxpZGF0b3IuaXNWYWxpZGF0b3IoY2xhc3NPckluc3RhbmNlKSkgcmV0dXJuIGNsYXNzT3JJbnN0YW5jZSBhcyBUO1xuICAgIGNvbnN0IGNvbnN0cnVjdG9yID0gY2xhc3NPckluc3RhbmNlLmRlZmF1bHQgfHwgY2xhc3NPckluc3RhbmNlO1xuICAgIGNvbnN0IGluc3RhbmNlID0gbmV3IGNvbnN0cnVjdG9yKCk7XG4gICAgdGhpcy5jYWNoZVt2YWxpZGF0b3JLZXldID0gaW5zdGFuY2U7XG4gICAgcmV0dXJuIGluc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFJlZ2lzdGVycyB0aGUgcHJvdmlkZWQgdmFsaWRhdG9ycyBvbnRvIHRoZSByZWdpc3RyeVxuICAgKlxuICAgKiBAcGFyYW0ge1RbXSB8IFZhbGlkYXRvckRlZmluaXRpb25bXX0gdmFsaWRhdG9yXG4gICAqL1xuICByZWdpc3RlcjxUIGV4dGVuZHMgVmFsaWRhdG9yPihcbiAgICAuLi52YWxpZGF0b3I6IChWYWxpZGF0b3JEZWZpbml0aW9uIHwgVClbXVxuICApOiB2b2lkIHtcbiAgICB2YWxpZGF0b3IuZm9yRWFjaCgodikgPT4ge1xuICAgICAgaWYgKFZhbGlkYXRvci5pc1ZhbGlkYXRvcih2KSkge1xuICAgICAgICAvLyBjb25zdCBrID1cblxuICAgICAgICBpZiAoKHYgYXMgVmFsaWRhdG9yRGVmaW5pdGlvbikudmFsaWRhdGlvbktleSBpbiB0aGlzLmNhY2hlKSByZXR1cm47XG4gICAgICAgIHRoaXMuY2FjaGVbKHYgYXMgVmFsaWRhdG9yRGVmaW5pdGlvbikudmFsaWRhdGlvbktleV0gPSB2O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgeyB2YWxpZGF0aW9uS2V5LCB2YWxpZGF0b3IsIHNhdmUgfSA9IHYgYXMgVmFsaWRhdG9yRGVmaW5pdGlvbjtcbiAgICAgICAgaWYgKHZhbGlkYXRpb25LZXkgaW4gdGhpcy5jYWNoZSkgcmV0dXJuO1xuICAgICAgICB0aGlzLmNhY2hlW3ZhbGlkYXRpb25LZXldID0gdmFsaWRhdG9yO1xuICAgICAgICBpZiAoIXNhdmUpIHJldHVybjtcbiAgICAgICAgY29uc3Qgb2JqOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gICAgICAgIG9ialt2YWxpZGF0aW9uS2V5LnRvVXBwZXJDYXNlKCldID0gdmFsaWRhdGlvbktleTtcblxuICAgICAgICB0aGlzLmN1c3RvbUtleUNhY2hlID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5jdXN0b21LZXlDYWNoZSwgb2JqKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -21,21 +21,22 @@
21
21
  * @category Validation
22
22
  */
23
23
  export declare const ValidationKeys: {
24
- REFLECT: string;
25
- VALIDATOR: string;
26
- REQUIRED: string;
27
- MIN: string;
28
- MAX: string;
29
- STEP: string;
30
- MIN_LENGTH: string;
31
- MAX_LENGTH: string;
32
- PATTERN: string;
33
- EMAIL: string;
34
- URL: string;
35
- DATE: string;
36
- TYPE: string;
37
- PASSWORD: string;
38
- LIST: string;
24
+ readonly REFLECT: "decaf.model.validation.";
25
+ readonly VALIDATOR: "validator";
26
+ readonly REQUIRED: "required";
27
+ readonly MIN: "min";
28
+ readonly MAX: "max";
29
+ readonly STEP: "step";
30
+ readonly MIN_LENGTH: "minlength";
31
+ readonly MAX_LENGTH: "maxlength";
32
+ readonly PATTERN: "pattern";
33
+ readonly EMAIL: "email";
34
+ readonly URL: "url";
35
+ readonly DATE: "date";
36
+ readonly TYPE: "type";
37
+ readonly PASSWORD: "password";
38
+ readonly LIST: "list";
39
+ readonly FORMAT: "format";
39
40
  };
40
41
  /**
41
42
  * @summary list of month names
@@ -37,6 +37,7 @@ export const ValidationKeys = {
37
37
  TYPE: "type",
38
38
  PASSWORD: "password",
39
39
  LIST: "list",
40
+ FORMAT: "format",
40
41
  };
41
42
  /**
42
43
  * @summary list of month names
@@ -132,4 +133,4 @@ export const DEFAULT_PATTERNS = {
132
133
  CHAR8_ONE_OF_EACH: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&_\-.,])[A-Za-z\d@$!%*?&_\-.,]{8,}$/g,
133
134
  },
134
135
  };
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3ZhbGlkYXRpb24vVmFsaWRhdG9ycy9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWxEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFDSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDNUIsT0FBTyxFQUFFLEdBQUcsU0FBUyxDQUFDLE9BQU8sYUFBYTtJQUMxQyxTQUFTLEVBQUUsV0FBVztJQUN0QixRQUFRLEVBQUUsVUFBVTtJQUNwQixHQUFHLEVBQUUsS0FBSztJQUNWLEdBQUcsRUFBRSxLQUFLO0lBQ1YsSUFBSSxFQUFFLE1BQU07SUFDWixVQUFVLEVBQUUsV0FBVztJQUN2QixVQUFVLEVBQUUsV0FBVztJQUN2QixPQUFPLEVBQUUsU0FBUztJQUNsQixLQUFLLEVBQUUsT0FBTztJQUNkLEdBQUcsRUFBRSxLQUFLO0lBQ1YsSUFBSSxFQUFFLE1BQU07SUFDWixJQUFJLEVBQUUsTUFBTTtJQUNaLFFBQVEsRUFBRSxVQUFVO0lBQ3BCLElBQUksRUFBRSxNQUFNO0NBQ2IsQ0FBQztBQUVGOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDekIsU0FBUztJQUNULFVBQVU7SUFDVixPQUFPO0lBQ1AsT0FBTztJQUNQLEtBQUs7SUFDTCxNQUFNO0lBQ04sTUFBTTtJQUNOLFFBQVE7SUFDUixXQUFXO0lBQ1gsU0FBUztJQUNULFVBQVU7SUFDVixVQUFVO0NBQ1gsQ0FBQztBQUVGOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRztJQUNoQyxRQUFRO0lBQ1IsUUFBUTtJQUNSLFNBQVM7SUFDVCxXQUFXO0lBQ1gsVUFBVTtJQUNWLFFBQVE7SUFDUixVQUFVO0NBQ1gsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQUNILE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUEyQjtJQUM1RCxRQUFRLEVBQUUsd0JBQXdCO0lBQ2xDLEdBQUcsRUFBRSwwQkFBMEI7SUFDL0IsR0FBRyxFQUFFLDBCQUEwQjtJQUMvQixVQUFVLEVBQUUsMkJBQTJCO0lBQ3ZDLFVBQVUsRUFBRSwyQkFBMkI7SUFDdkMsT0FBTyxFQUFFLHNDQUFzQztJQUMvQyxLQUFLLEVBQUUsZ0NBQWdDO0lBQ3ZDLEdBQUcsRUFBRSw4QkFBOEI7SUFDbkMsSUFBSSxFQUFFLDBDQUEwQztJQUNoRCxJQUFJLEVBQUUsa0NBQWtDO0lBQ3hDLElBQUksRUFBRSxpQ0FBaUM7SUFDdkMsT0FBTyxFQUFFLG1CQUFtQjtJQUM1QixRQUFRLEVBQ04sNEhBQTRIO0lBQzlILElBQUksRUFBRSxxQkFBcUI7SUFDM0IsZUFBZSxFQUFFLCtCQUErQjtDQUNqRCxDQUFDO0FBRUY7Ozs7OztHQU1HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUc7SUFDOUIsS0FBSyxFQUNILDRKQUE0SjtJQUM5SixHQUFHLEVBQUUseWFBQXlhO0lBQzlhLFFBQVEsRUFBRTtRQUNSLGlCQUFpQixFQUNmLGlGQUFpRjtLQUNwRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2RlbEtleXMgfSBmcm9tIFwiLi4vLi4vdXRpbHMvY29uc3RhbnRzXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgVGhlIGtleXMgdXNlZCBmb3IgdmFsaWRhdGlvblxuICpcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBSRUZMRUNUIHByZWZpeGVzIG90aGVyc1xuICogQHByb3BlcnR5IHtzdHJpbmd9IFJFUVVJUkVEIHNldHMgYXMgcmVxdWlyZWRcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBNSU4gZGVmaW5lcyBtaW4gdmFsdWVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBNQVggZGVmaW5lcyBtYXggdmFsdWVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBTVEVQIGRlZmluZXMgc3RlcFxuICogQHByb3BlcnR5IHtzdHJpbmd9IE1JTl9MRU5HVEggZGVmaW5lcyBtaW4gbGVuZ3RoXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTUFYX0xFTkdUSCBkZWZpbmVzIG1heCBsZW5ndGhcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBQQVRURVJOIGRlZmluZXMgcGF0dGVyblxuICogQHByb3BlcnR5IHtzdHJpbmd9IEVNQUlMIGRlZmluZXMgZW1haWxcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBVUkwgZGVmaW5lcyB1cmxcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBEQVRFIGRlZmluZXMgZGF0ZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFRZUEUgZGVmaW5lcyB0eXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gUEFTU1dPUkQgZGVmaW5lcyBwYXNzd29yZFxuICogQHByb3BlcnR5IHtzdHJpbmd9IExJU1QgZGVmaW5lcyBsaXN0XG4gKlxuICogQGNvbnN0YW50IFZhbGlkYXRpb25LZXlzXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRlY29yYXRvci12YWxpZGF0aW9uLlZhbGlkYXRpb25cbiAqIEBjYXRlZ29yeSBWYWxpZGF0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBWYWxpZGF0aW9uS2V5cyA9IHtcbiAgUkVGTEVDVDogYCR7TW9kZWxLZXlzLlJFRkxFQ1R9dmFsaWRhdGlvbi5gLFxuICBWQUxJREFUT1I6IFwidmFsaWRhdG9yXCIsXG4gIFJFUVVJUkVEOiBcInJlcXVpcmVkXCIsXG4gIE1JTjogXCJtaW5cIixcbiAgTUFYOiBcIm1heFwiLFxuICBTVEVQOiBcInN0ZXBcIixcbiAgTUlOX0xFTkdUSDogXCJtaW5sZW5ndGhcIixcbiAgTUFYX0xFTkdUSDogXCJtYXhsZW5ndGhcIixcbiAgUEFUVEVSTjogXCJwYXR0ZXJuXCIsXG4gIEVNQUlMOiBcImVtYWlsXCIsXG4gIFVSTDogXCJ1cmxcIixcbiAgREFURTogXCJkYXRlXCIsXG4gIFRZUEU6IFwidHlwZVwiLFxuICBQQVNTV09SRDogXCJwYXNzd29yZFwiLFxuICBMSVNUOiBcImxpc3RcIixcbn07XG5cbi8qKlxuICogQHN1bW1hcnkgbGlzdCBvZiBtb250aCBuYW1lc1xuICogQGRlc2NyaXB0aW9uIFN0b3JlcyBtb250aCBuYW1lcy4gQ2FuIGJlIGNoYW5nZWQgZm9yIGxvY2FsaXphdGlvbiBwdXJwb3Nlc1xuICpcbiAqIEBjb25zdGFudCBNT05USF9OQU1FU1xuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvbi5WYWxpZGF0aW9uXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdGlvblxuICovXG5leHBvcnQgY29uc3QgTU9OVEhfTkFNRVMgPSBbXG4gIFwiSmFudWFyeVwiLFxuICBcIkZlYnJ1YXJ5XCIsXG4gIFwiTWFyY2hcIixcbiAgXCJBcHJpbFwiLFxuICBcIk1heVwiLFxuICBcIkp1bmVcIixcbiAgXCJKdWx5XCIsXG4gIFwiQXVndXN0XCIsXG4gIFwiU2VwdGVtYmVyXCIsXG4gIFwiT2N0b2JlclwiLFxuICBcIk5vdmVtYmVyXCIsXG4gIFwiRGVjZW1iZXJcIixcbl07XG5cbi8qKlxuICogQHN1bW1hcnkgbGlzdCBvZiBuYW1lcyBvZiBkYXlzIG9mIHRoZSB3ZWVrXG4gKiBAZGVzY3JpcHRpb24gU3RvcmVzIG5hbWVzIGZvciBkYXlzIG9mIHRoZSB3ZWVrLiBDYW4gYmUgY2hhbmdlZCBmb3IgbG9jYWxpemF0aW9uIHB1cnBvc2VzXG4gKlxuICogQGNvbnN0YW50IERBWVNfT0ZfV0VFS19OQU1FU1xuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvbi5WYWxpZGF0aW9uXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdGlvblxuICovXG5leHBvcnQgY29uc3QgREFZU19PRl9XRUVLX05BTUVTID0gW1xuICBcIlN1bmRheVwiLFxuICBcIk1vbmRheVwiLFxuICBcIlR1ZXNkYXlcIixcbiAgXCJXZWRuZXNkYXlcIixcbiAgXCJUaHVyc2RheVwiLFxuICBcIkZyaWRheVwiLFxuICBcIlNhdHVyZGF5XCIsXG5dO1xuXG4vKipcbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIGRlZmF1bHQgZXJyb3IgbWVzc2FnZXNcbiAqXG4gKiBAcHJvcGVydHkge3N0cmluZ30gUkVRVUlSRUQgZGVmYXVsdCBlcnJvciBtZXNzYWdlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTUlOIGRlZmF1bHQgZXJyb3IgbWVzc2FnZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IE1BWCBkZWZhdWx0IGVycm9yIG1lc3NhZ2VcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBNSU5fTEVOR1RIIGRlZmF1bHQgZXJyb3IgbWVzc2FnZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IE1BWF9MRU5HVEggZGVmYXVsdCBlcnJvciBtZXNzYWdlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gUEFUVEVSTiBkZWZhdWx0IGVycm9yIG1lc3NhZ2VcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBFTUFJTCBkZWZhdWx0IGVycm9yIG1lc3NhZ2VcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBVUkwgZGVmYXVsdCBlcnJvciBtZXNzYWdlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gVFlQRSBkZWZhdWx0IGVycm9yIG1lc3NhZ2VcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBTVEVQIGRlZmF1bHQgZXJyb3IgbWVzc2FnZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IERBVEUgZGVmYXVsdCBlcnJvciBtZXNzYWdlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gREVGQVVMVCBkZWZhdWx0IGVycm9yIG1lc3NhZ2VcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBQQVNTV09SRCBkZWZhdWx0IGVycm9yIG1lc3NhZ2VcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBMSVNUIGRlZmF1bHQgZXJyb3IgbWVzc2FnZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IExJU1RfSU5TSURFIGRlZmF1bHQgZXJyb3IgbWVzc2FnZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IE1PREVMX05PVF9GT1VORCBkZWZhdWx0IGVycm9yIG1lc3NhZ2VcbiAqXG4gKiBAY29uc3RhbnQgREVGQVVMVF9FUlJPUl9NRVNTQUdFU1xuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvbi5WYWxpZGF0aW9uXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdGlvblxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9FUlJPUl9NRVNTQUdFUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgUkVRVUlSRUQ6IFwiVGhpcyBmaWVsZCBpcyByZXF1aXJlZFwiLFxuICBNSU46IFwiVGhlIG1pbmltdW0gdmFsdWUgaXMgezB9XCIsXG4gIE1BWDogXCJUaGUgbWF4aW11bSB2YWx1ZSBpcyB7MH1cIixcbiAgTUlOX0xFTkdUSDogXCJUaGUgbWluaW11bSBsZW5ndGggaXMgezB9XCIsXG4gIE1BWF9MRU5HVEg6IFwiVGhlIG1heGltdW0gbGVuZ3RoIGlzIHswfVwiLFxuICBQQVRURVJOOiBcIlRoZSB2YWx1ZSBkb2VzIG5vdCBtYXRjaCB0aGUgcGF0dGVyblwiLFxuICBFTUFJTDogXCJUaGUgdmFsdWUgaXMgbm90IGEgdmFsaWQgZW1haWxcIixcbiAgVVJMOiBcIlRoZSB2YWx1ZSBpcyBub3QgYSB2YWxpZCBVUkxcIixcbiAgVFlQRTogXCJJbnZhbGlkIHR5cGUuIEV4cGVjdGVkIHswfSwgcmVjZWl2ZWQgezF9XCIsXG4gIFNURVA6IFwiSW52YWxpZCB2YWx1ZS4gTm90IGEgc3RlcCBvZiB7MH1cIixcbiAgREFURTogXCJJbnZhbGlkIHZhbHVlLiBub3QgYSB2YWxpZCBEYXRlXCIsXG4gIERFRkFVTFQ6IFwiVGhlcmUgaXMgYW4gRXJyb3JcIixcbiAgUEFTU1dPUkQ6XG4gICAgXCJNdXN0IGJlIGF0IGxlYXN0IDggY2hhcmFjdGVycyBhbmQgY29udGFpbiBvbmUgb2YgbnVtYmVyLCBsb3dlciBhbmQgdXBwZXIgY2FzZSBsZXR0ZXJzLCBhbmQgc3BlY2lhbCBjaGFyYWN0ZXIgKEAkISUqPyZfLS4sKVwiLFxuICBMSVNUOiBcIkludmFsaWQgbGlzdCBvZiB7MH1cIixcbiAgTU9ERUxfTk9UX0ZPVU5EOiBcIk5vIG1vZGVsIHJlZ2lzdGVyZWQgdW5kZXIgezB9XCIsXG59O1xuXG4vKipcbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIHZhcmlvdXMgZGVmYXVsdCByZWdleHAgcGF0dGVybnMgdXNlZFxuICpcbiAqIEBlbnVtIERFRkFVTFRfUEFUVEVSTlNcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdG9yLXZhbGlkYXRpb24uVmFsaWRhdGlvblxuICogQGNhdGVnb3J5IFZhbGlkYXRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfUEFUVEVSTlMgPSB7XG4gIEVNQUlMOlxuICAgIC9bYS16QS1aMC05ISMkJSYnKisvPT9eX2B7fH1+LV0rKD86XFwuW2EtekEtWjAtOSEjJCUmJyorLz0/Xl9ge3x9fi1dKykqQCg/OlthLXpBLVowLTldKD86W2EtejAtOS1dKlthLXpBLVowLTldKT9cXC4pK1thLXpBLVowLTldKD86W2EtekEtWjAtOS1dKlthLXpBLVowLTldKT8vLFxuICBVUkw6IC9eKD86KD86KD86aHR0cHM/fGZ0cCk6KT9cXC9cXC8pKD86XFxTKyg/OjpcXFMqKT9AKT8oPzooPyEoPzoxMHwxMjcpKD86XFwuXFxkezEsM30pezN9KSg/ISg/OjE2OVxcLjI1NHwxOTJcXC4xNjgpKD86XFwuXFxkezEsM30pezJ9KSg/ITE3MlxcLig/OjFbNi05XXwyXFxkfDNbMC0xXSkoPzpcXC5cXGR7MSwzfSl7Mn0pKD86WzEtOV1cXGQ/fDFcXGRcXGR8MlswMV1cXGR8MjJbMC0zXSkoPzpcXC4oPzoxP1xcZHsxLDJ9fDJbMC00XVxcZHwyNVswLTVdKSl7Mn0oPzpcXC4oPzpbMS05XVxcZD98MVxcZFxcZHwyWzAtNF1cXGR8MjVbMC00XSkpfCg/Oig/OlthLXowLTlcXHUwMGExLVxcdWZmZmZdW2EtejAtOVxcdTAwYTEtXFx1ZmZmZl8tXXswLDYyfSk/W2EtejAtOVxcdTAwYTEtXFx1ZmZmZl1cXC4pKyg/OlthLXpcXHUwMGExLVxcdWZmZmZdezIsfVxcLj8pKSg/OjpcXGR7Miw1fSk/KD86Wy8/I11cXFMqKT8kL2ksXG4gIFBBU1NXT1JEOiB7XG4gICAgQ0hBUjhfT05FX09GX0VBQ0g6XG4gICAgICAvXig/PS4qW2Etel0pKD89LipbQS1aXSkoPz0uKlxcZCkoPz0uKltAJCElKj8mX1xcLS4sXSlbQS1aYS16XFxkQCQhJSo/Jl9cXC0uLF17OCx9JC9nLFxuICB9LFxufTtcbiJdfQ==
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3ZhbGlkYXRpb24vVmFsaWRhdG9ycy9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWxEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFDSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDNUIsT0FBTyxFQUFFLEdBQUcsU0FBUyxDQUFDLE9BQU8sYUFBYTtJQUMxQyxTQUFTLEVBQUUsV0FBVztJQUN0QixRQUFRLEVBQUUsVUFBVTtJQUNwQixHQUFHLEVBQUUsS0FBSztJQUNWLEdBQUcsRUFBRSxLQUFLO0lBQ1YsSUFBSSxFQUFFLE1BQU07SUFDWixVQUFVLEVBQUUsV0FBVztJQUN2QixVQUFVLEVBQUUsV0FBVztJQUN2QixPQUFPLEVBQUUsU0FBUztJQUNsQixLQUFLLEVBQUUsT0FBTztJQUNkLEdBQUcsRUFBRSxLQUFLO0lBQ1YsSUFBSSxFQUFFLE1BQU07SUFDWixJQUFJLEVBQUUsTUFBTTtJQUNaLFFBQVEsRUFBRSxVQUFVO0lBQ3BCLElBQUksRUFBRSxNQUFNO0lBQ1osTUFBTSxFQUFFLFFBQVE7Q0FDUixDQUFDO0FBRVg7Ozs7Ozs7R0FPRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRztJQUN6QixTQUFTO0lBQ1QsVUFBVTtJQUNWLE9BQU87SUFDUCxPQUFPO0lBQ1AsS0FBSztJQUNMLE1BQU07SUFDTixNQUFNO0lBQ04sUUFBUTtJQUNSLFdBQVc7SUFDWCxTQUFTO0lBQ1QsVUFBVTtJQUNWLFVBQVU7Q0FDWCxDQUFDO0FBRUY7Ozs7Ozs7R0FPRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQ2hDLFFBQVE7SUFDUixRQUFRO0lBQ1IsU0FBUztJQUNULFdBQVc7SUFDWCxVQUFVO0lBQ1YsUUFBUTtJQUNSLFVBQVU7Q0FDWCxDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQTJCO0lBQzVELFFBQVEsRUFBRSx3QkFBd0I7SUFDbEMsR0FBRyxFQUFFLDBCQUEwQjtJQUMvQixHQUFHLEVBQUUsMEJBQTBCO0lBQy9CLFVBQVUsRUFBRSwyQkFBMkI7SUFDdkMsVUFBVSxFQUFFLDJCQUEyQjtJQUN2QyxPQUFPLEVBQUUsc0NBQXNDO0lBQy9DLEtBQUssRUFBRSxnQ0FBZ0M7SUFDdkMsR0FBRyxFQUFFLDhCQUE4QjtJQUNuQyxJQUFJLEVBQUUsMENBQTBDO0lBQ2hELElBQUksRUFBRSxrQ0FBa0M7SUFDeEMsSUFBSSxFQUFFLGlDQUFpQztJQUN2QyxPQUFPLEVBQUUsbUJBQW1CO0lBQzVCLFFBQVEsRUFDTiw0SEFBNEg7SUFDOUgsSUFBSSxFQUFFLHFCQUFxQjtJQUMzQixlQUFlLEVBQUUsK0JBQStCO0NBQ2pELENBQUM7QUFFRjs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM5QixLQUFLLEVBQ0gsNEpBQTRKO0lBQzlKLEdBQUcsRUFBRSx5YUFBeWE7SUFDOWEsUUFBUSxFQUFFO1FBQ1IsaUJBQWlCLEVBQ2YsaUZBQWlGO0tBQ3BGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZGVsS2V5cyB9IGZyb20gXCIuLi8uLi91dGlscy9jb25zdGFudHNcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBUaGUga2V5cyB1c2VkIGZvciB2YWxpZGF0aW9uXG4gKlxuICogQHByb3BlcnR5IHtzdHJpbmd9IFJFRkxFQ1QgcHJlZml4ZXMgb3RoZXJzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gUkVRVUlSRUQgc2V0cyBhcyByZXF1aXJlZFxuICogQHByb3BlcnR5IHtzdHJpbmd9IE1JTiBkZWZpbmVzIG1pbiB2YWx1ZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IE1BWCBkZWZpbmVzIG1heCB2YWx1ZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFNURVAgZGVmaW5lcyBzdGVwXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTUlOX0xFTkdUSCBkZWZpbmVzIG1pbiBsZW5ndGhcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBNQVhfTEVOR1RIIGRlZmluZXMgbWF4IGxlbmd0aFxuICogQHByb3BlcnR5IHtzdHJpbmd9IFBBVFRFUk4gZGVmaW5lcyBwYXR0ZXJuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gRU1BSUwgZGVmaW5lcyBlbWFpbFxuICogQHByb3BlcnR5IHtzdHJpbmd9IFVSTCBkZWZpbmVzIHVybFxuICogQHByb3BlcnR5IHtzdHJpbmd9IERBVEUgZGVmaW5lcyBkYXRlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gVFlQRSBkZWZpbmVzIHR5cGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBQQVNTV09SRCBkZWZpbmVzIHBhc3N3b3JkXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTElTVCBkZWZpbmVzIGxpc3RcbiAqXG4gKiBAY29uc3RhbnQgVmFsaWRhdGlvbktleXNcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdG9yLXZhbGlkYXRpb24uVmFsaWRhdGlvblxuICogQGNhdGVnb3J5IFZhbGlkYXRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IFZhbGlkYXRpb25LZXlzID0ge1xuICBSRUZMRUNUOiBgJHtNb2RlbEtleXMuUkVGTEVDVH12YWxpZGF0aW9uLmAsXG4gIFZBTElEQVRPUjogXCJ2YWxpZGF0b3JcIixcbiAgUkVRVUlSRUQ6IFwicmVxdWlyZWRcIixcbiAgTUlOOiBcIm1pblwiLFxuICBNQVg6IFwibWF4XCIsXG4gIFNURVA6IFwic3RlcFwiLFxuICBNSU5fTEVOR1RIOiBcIm1pbmxlbmd0aFwiLFxuICBNQVhfTEVOR1RIOiBcIm1heGxlbmd0aFwiLFxuICBQQVRURVJOOiBcInBhdHRlcm5cIixcbiAgRU1BSUw6IFwiZW1haWxcIixcbiAgVVJMOiBcInVybFwiLFxuICBEQVRFOiBcImRhdGVcIixcbiAgVFlQRTogXCJ0eXBlXCIsXG4gIFBBU1NXT1JEOiBcInBhc3N3b3JkXCIsXG4gIExJU1Q6IFwibGlzdFwiLFxuICBGT1JNQVQ6IFwiZm9ybWF0XCIsXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIEBzdW1tYXJ5IGxpc3Qgb2YgbW9udGggbmFtZXNcbiAqIEBkZXNjcmlwdGlvbiBTdG9yZXMgbW9udGggbmFtZXMuIENhbiBiZSBjaGFuZ2VkIGZvciBsb2NhbGl6YXRpb24gcHVycG9zZXNcbiAqXG4gKiBAY29uc3RhbnQgTU9OVEhfTkFNRVNcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdG9yLXZhbGlkYXRpb24uVmFsaWRhdGlvblxuICogQGNhdGVnb3J5IFZhbGlkYXRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IE1PTlRIX05BTUVTID0gW1xuICBcIkphbnVhcnlcIixcbiAgXCJGZWJydWFyeVwiLFxuICBcIk1hcmNoXCIsXG4gIFwiQXByaWxcIixcbiAgXCJNYXlcIixcbiAgXCJKdW5lXCIsXG4gIFwiSnVseVwiLFxuICBcIkF1Z3VzdFwiLFxuICBcIlNlcHRlbWJlclwiLFxuICBcIk9jdG9iZXJcIixcbiAgXCJOb3ZlbWJlclwiLFxuICBcIkRlY2VtYmVyXCIsXG5dO1xuXG4vKipcbiAqIEBzdW1tYXJ5IGxpc3Qgb2YgbmFtZXMgb2YgZGF5cyBvZiB0aGUgd2Vla1xuICogQGRlc2NyaXB0aW9uIFN0b3JlcyBuYW1lcyBmb3IgZGF5cyBvZiB0aGUgd2Vlay4gQ2FuIGJlIGNoYW5nZWQgZm9yIGxvY2FsaXphdGlvbiBwdXJwb3Nlc1xuICpcbiAqIEBjb25zdGFudCBEQVlTX09GX1dFRUtfTkFNRVNcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdG9yLXZhbGlkYXRpb24uVmFsaWRhdGlvblxuICogQGNhdGVnb3J5IFZhbGlkYXRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IERBWVNfT0ZfV0VFS19OQU1FUyA9IFtcbiAgXCJTdW5kYXlcIixcbiAgXCJNb25kYXlcIixcbiAgXCJUdWVzZGF5XCIsXG4gIFwiV2VkbmVzZGF5XCIsXG4gIFwiVGh1cnNkYXlcIixcbiAgXCJGcmlkYXlcIixcbiAgXCJTYXR1cmRheVwiLFxuXTtcblxuLyoqXG4gKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSBkZWZhdWx0IGVycm9yIG1lc3NhZ2VzXG4gKlxuICogQHByb3BlcnR5IHtzdHJpbmd9IFJFUVVJUkVEIGRlZmF1bHQgZXJyb3IgbWVzc2FnZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IE1JTiBkZWZhdWx0IGVycm9yIG1lc3NhZ2VcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBNQVggZGVmYXVsdCBlcnJvciBtZXNzYWdlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTUlOX0xFTkdUSCBkZWZhdWx0IGVycm9yIG1lc3NhZ2VcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBNQVhfTEVOR1RIIGRlZmF1bHQgZXJyb3IgbWVzc2FnZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFBBVFRFUk4gZGVmYXVsdCBlcnJvciBtZXNzYWdlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gRU1BSUwgZGVmYXVsdCBlcnJvciBtZXNzYWdlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gVVJMIGRlZmF1bHQgZXJyb3IgbWVzc2FnZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFRZUEUgZGVmYXVsdCBlcnJvciBtZXNzYWdlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gU1RFUCBkZWZhdWx0IGVycm9yIG1lc3NhZ2VcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBEQVRFIGRlZmF1bHQgZXJyb3IgbWVzc2FnZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IERFRkFVTFQgZGVmYXVsdCBlcnJvciBtZXNzYWdlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gUEFTU1dPUkQgZGVmYXVsdCBlcnJvciBtZXNzYWdlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTElTVCBkZWZhdWx0IGVycm9yIG1lc3NhZ2VcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBMSVNUX0lOU0lERSBkZWZhdWx0IGVycm9yIG1lc3NhZ2VcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBNT0RFTF9OT1RfRk9VTkQgZGVmYXVsdCBlcnJvciBtZXNzYWdlXG4gKlxuICogQGNvbnN0YW50IERFRkFVTFRfRVJST1JfTUVTU0FHRVNcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdG9yLXZhbGlkYXRpb24uVmFsaWRhdGlvblxuICogQGNhdGVnb3J5IFZhbGlkYXRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfRVJST1JfTUVTU0FHRVM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIFJFUVVJUkVEOiBcIlRoaXMgZmllbGQgaXMgcmVxdWlyZWRcIixcbiAgTUlOOiBcIlRoZSBtaW5pbXVtIHZhbHVlIGlzIHswfVwiLFxuICBNQVg6IFwiVGhlIG1heGltdW0gdmFsdWUgaXMgezB9XCIsXG4gIE1JTl9MRU5HVEg6IFwiVGhlIG1pbmltdW0gbGVuZ3RoIGlzIHswfVwiLFxuICBNQVhfTEVOR1RIOiBcIlRoZSBtYXhpbXVtIGxlbmd0aCBpcyB7MH1cIixcbiAgUEFUVEVSTjogXCJUaGUgdmFsdWUgZG9lcyBub3QgbWF0Y2ggdGhlIHBhdHRlcm5cIixcbiAgRU1BSUw6IFwiVGhlIHZhbHVlIGlzIG5vdCBhIHZhbGlkIGVtYWlsXCIsXG4gIFVSTDogXCJUaGUgdmFsdWUgaXMgbm90IGEgdmFsaWQgVVJMXCIsXG4gIFRZUEU6IFwiSW52YWxpZCB0eXBlLiBFeHBlY3RlZCB7MH0sIHJlY2VpdmVkIHsxfVwiLFxuICBTVEVQOiBcIkludmFsaWQgdmFsdWUuIE5vdCBhIHN0ZXAgb2YgezB9XCIsXG4gIERBVEU6IFwiSW52YWxpZCB2YWx1ZS4gbm90IGEgdmFsaWQgRGF0ZVwiLFxuICBERUZBVUxUOiBcIlRoZXJlIGlzIGFuIEVycm9yXCIsXG4gIFBBU1NXT1JEOlxuICAgIFwiTXVzdCBiZSBhdCBsZWFzdCA4IGNoYXJhY3RlcnMgYW5kIGNvbnRhaW4gb25lIG9mIG51bWJlciwgbG93ZXIgYW5kIHVwcGVyIGNhc2UgbGV0dGVycywgYW5kIHNwZWNpYWwgY2hhcmFjdGVyIChAJCElKj8mXy0uLClcIixcbiAgTElTVDogXCJJbnZhbGlkIGxpc3Qgb2YgezB9XCIsXG4gIE1PREVMX05PVF9GT1VORDogXCJObyBtb2RlbCByZWdpc3RlcmVkIHVuZGVyIHswfVwiLFxufTtcblxuLyoqXG4gKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSB2YXJpb3VzIGRlZmF1bHQgcmVnZXhwIHBhdHRlcm5zIHVzZWRcbiAqXG4gKiBAZW51bSBERUZBVUxUX1BBVFRFUk5TXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRlY29yYXRvci12YWxpZGF0aW9uLlZhbGlkYXRpb25cbiAqIEBjYXRlZ29yeSBWYWxpZGF0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX1BBVFRFUk5TID0ge1xuICBFTUFJTDpcbiAgICAvW2EtekEtWjAtOSEjJCUmJyorLz0/Xl9ge3x9fi1dKyg/OlxcLlthLXpBLVowLTkhIyQlJicqKy89P15fYHt8fX4tXSspKkAoPzpbYS16QS1aMC05XSg/OlthLXowLTktXSpbYS16QS1aMC05XSk/XFwuKStbYS16QS1aMC05XSg/OlthLXpBLVowLTktXSpbYS16QS1aMC05XSk/LyxcbiAgVVJMOiAvXig/Oig/Oig/Omh0dHBzP3xmdHApOik/XFwvXFwvKSg/OlxcUysoPzo6XFxTKik/QCk/KD86KD8hKD86MTB8MTI3KSg/OlxcLlxcZHsxLDN9KXszfSkoPyEoPzoxNjlcXC4yNTR8MTkyXFwuMTY4KSg/OlxcLlxcZHsxLDN9KXsyfSkoPyExNzJcXC4oPzoxWzYtOV18MlxcZHwzWzAtMV0pKD86XFwuXFxkezEsM30pezJ9KSg/OlsxLTldXFxkP3wxXFxkXFxkfDJbMDFdXFxkfDIyWzAtM10pKD86XFwuKD86MT9cXGR7MSwyfXwyWzAtNF1cXGR8MjVbMC01XSkpezJ9KD86XFwuKD86WzEtOV1cXGQ/fDFcXGRcXGR8MlswLTRdXFxkfDI1WzAtNF0pKXwoPzooPzpbYS16MC05XFx1MDBhMS1cXHVmZmZmXVthLXowLTlcXHUwMGExLVxcdWZmZmZfLV17MCw2Mn0pP1thLXowLTlcXHUwMGExLVxcdWZmZmZdXFwuKSsoPzpbYS16XFx1MDBhMS1cXHVmZmZmXXsyLH1cXC4/KSkoPzo6XFxkezIsNX0pPyg/OlsvPyNdXFxTKik/JC9pLFxuICBQQVNTV09SRDoge1xuICAgIENIQVI4X09ORV9PRl9FQUNIOlxuICAgICAgL14oPz0uKlthLXpdKSg/PS4qW0EtWl0pKD89LipcXGQpKD89LipbQCQhJSo/Jl9cXC0uLF0pW0EtWmEtelxcZEAkISUqPyZfXFwtLixdezgsfSQvZyxcbiAgfSxcbn07XG4iXX0=
@@ -1,28 +1,54 @@
1
1
  import "reflect-metadata";
2
2
  import { ModelConstructor } from "../model/types";
3
3
  /**
4
- * @summary Marks the property as required.
5
- * @description Validators to validate a decorated property must use key {@link ValidationKeys#REQUIRED}
4
+ * @description Property decorator that marks a field as required
5
+ * @summary Marks the property as required, causing validation to fail if the property is undefined, null, or empty.
6
+ * Validators to validate a decorated property must use key {@link ValidationKeys#REQUIRED}.
7
+ * This decorator is commonly used as the first validation step for important fields.
6
8
  *
7
- * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#REQUIRED}
9
+ * @param {string} [message] - The error message to display when validation fails. Defaults to {@link DEFAULT_ERROR_MESSAGES#REQUIRED}
10
+ * @return {PropertyDecorator} A decorator function that can be applied to class properties
8
11
  *
9
12
  * @function required
10
- *
11
13
  * @category Decorators
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * class User {
18
+ * @required()
19
+ * username: string;
20
+ *
21
+ * @required("Email address is mandatory")
22
+ * email: string;
23
+ * }
24
+ * ```
12
25
  */
13
- export declare function required(message?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
26
+ export declare function required(message?: string): (target: object, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
14
27
  /**
15
- * @summary Defines a minimum value for the property
16
- * @description Validators to validate a decorated property must use key {@link ValidationKeys#MIN}
28
+ * @description Property decorator that enforces a minimum value constraint
29
+ * @summary Defines a minimum value for the property, causing validation to fail if the property value is less than the specified minimum.
30
+ * Validators to validate a decorated property must use key {@link ValidationKeys#MIN}.
31
+ * This decorator works with numeric values and dates.
17
32
  *
18
- * @param {number | Date} value
19
- * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#MIN}
33
+ * @param {number | Date | string} value - The minimum value allowed. For dates, can be a Date object or a string that can be converted to a date
34
+ * @param {string} [message] - The error message to display when validation fails. Defaults to {@link DEFAULT_ERROR_MESSAGES#MIN}
35
+ * @return {PropertyDecorator} A decorator function that can be applied to class properties
20
36
  *
21
37
  * @function min
22
- * @memberOf module:decorator-validation.Decorators.Validation
23
38
  * @category Decorators
39
+ *
40
+ * @example
41
+ * ```typescript
42
+ * class Product {
43
+ * @min(0)
44
+ * price: number;
45
+ *
46
+ * @min(new Date(2023, 0, 1), "Date must be after January 1, 2023")
47
+ * releaseDate: Date;
48
+ * }
49
+ * ```
24
50
  */
25
- export declare function min(value: number | Date | string, message?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
51
+ export declare function min(value: number | Date | string, message?: string): (target: object, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
26
52
  /**
27
53
  * @summary Defines a maximum value for the property
28
54
  * @description Validators to validate a decorated property must use key {@link ValidationKeys#MAX}
@@ -31,10 +57,9 @@ export declare function min(value: number | Date | string, message?: string): (t
31
57
  * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#MAX}
32
58
  *
33
59
  * @function max
34
- * @memberOf module:decorator-validation.Decorators.Validation
35
60
  * @category Decorators
36
61
  */
37
- export declare function max(value: number | Date | string, message?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
62
+ export declare function max(value: number | Date | string, message?: string): (target: object, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
38
63
  /**
39
64
  * @summary Defines a step value for the property
40
65
  * @description Validators to validate a decorated property must use key {@link ValidationKeys#STEP}
@@ -43,10 +68,9 @@ export declare function max(value: number | Date | string, message?: string): (t
43
68
  * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#STEP}
44
69
  *
45
70
  * @function step
46
- * @memberOf module:decorator-validation.Decorators.Validation
47
71
  * @category Decorators
48
72
  */
49
- export declare function step(value: number, message?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
73
+ export declare function step(value: number, message?: string): (target: object, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
50
74
  /**
51
75
  * @summary Defines a minimum length for the property
52
76
  * @description Validators to validate a decorated property must use key {@link ValidationKeys#MIN_LENGTH}
@@ -55,10 +79,9 @@ export declare function step(value: number, message?: string): (target: object,
55
79
  * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#MIN_LENGTH}
56
80
  *
57
81
  * @function minlength
58
- * @memberOf module:decorator-validation.Decorators.Validation
59
82
  * @category Decorators
60
83
  */
61
- export declare function minlength(value: number, message?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
84
+ export declare function minlength(value: number, message?: string): (target: object, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
62
85
  /**
63
86
  * @summary Defines a maximum length for the property
64
87
  * @description Validators to validate a decorated property must use key {@link ValidationKeys#MAX_LENGTH}
@@ -67,10 +90,9 @@ export declare function minlength(value: number, message?: string): (target: obj
67
90
  * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#MAX_LENGTH}
68
91
  *
69
92
  * @function maxlength
70
- * @memberOf module:decorator-validation.Decorators.Validation
71
93
  * @category Decorators
72
94
  */
73
- export declare function maxlength(value: number, message?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
95
+ export declare function maxlength(value: number, message?: string): (target: object, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
74
96
  /**
75
97
  * @summary Defines a RegExp pattern the property must respect
76
98
  * @description Validators to validate a decorated property must use key {@link ValidationKeys#PATTERN}
@@ -79,10 +101,9 @@ export declare function maxlength(value: number, message?: string): (target: obj
79
101
  * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#PATTERN}
80
102
  *
81
103
  * @function pattern
82
- * @memberOf module:decorator-validation.Decorators.Validation
83
104
  * @category Decorators
84
105
  */
85
- export declare function pattern(value: RegExp | string, message?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
106
+ export declare function pattern(value: RegExp | string, message?: string): (target: object, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
86
107
  /**
87
108
  * @summary Defines the property as an email
88
109
  * @description Validators to validate a decorated property must use key {@link ValidationKeys#EMAIL}
@@ -90,10 +111,9 @@ export declare function pattern(value: RegExp | string, message?: string): (targ
90
111
  * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#EMAIL}
91
112
  *
92
113
  * @function email
93
- * @memberOf module:decorator-validation.Decorators.Validation
94
114
  * @category Decorators
95
115
  */
96
- export declare function email(message?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
116
+ export declare function email(message?: string): (target: object, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
97
117
  /**
98
118
  * @summary Defines the property as an URL
99
119
  * @description Validators to validate a decorated property must use key {@link ValidationKeys#URL}
@@ -101,10 +121,9 @@ export declare function email(message?: string): (target: object, propertyKey?:
101
121
  * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#URL}
102
122
  *
103
123
  * @function url
104
- * @memberOf module:decorator-validation.Decorators.Validation
105
124
  * @category Decorators
106
125
  */
107
- export declare function url(message?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
126
+ export declare function url(message?: string): (target: object, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
108
127
  /**
109
128
  * @summary Enforces type verification
110
129
  * @description Validators to validate a decorated property must use key {@link ValidationKeys#TYPE}
@@ -113,10 +132,9 @@ export declare function url(message?: string): (target: object, propertyKey?: st
113
132
  * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#TYPE}
114
133
  *
115
134
  * @function type
116
- * @memberOf module:decorator-validation.Decorators.Validation
117
135
  * @category Decorators
118
136
  */
119
- export declare function type(types: string[] | string, message?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
137
+ export declare function type(types: string[] | string, message?: string): (target: object, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
120
138
  /**
121
139
  * @summary Date Handler Decorator
122
140
  * @description Validators to validate a decorated property must use key {@link ValidationKeys#DATE}
@@ -125,28 +143,24 @@ export declare function type(types: string[] | string, message?: string): (targe
125
143
  *
126
144
  * @param {string} format accepted format according to {@link formatDate}
127
145
  * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#DATE}
128
- * @param {Constructor<Validator>} [validator] the Validator to be used. Defaults to {@link DateValidator}
129
146
  *
130
147
  * @function date
131
148
  *
132
- * @memberOf module:decorator-validation.Decorators.Validation
133
149
  * @category Decorators
134
150
  */
135
- export declare function date(format?: string, message?: string): (target: Record<string, any>, propertyKey?: any) => any;
151
+ export declare function date(format?: string, message?: string): (target: object, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
136
152
  /**
137
153
  * @summary Password Handler Decorator
138
154
  * @description Validators to validate a decorated property must use key {@link ValidationKeys#PASSWORD}
139
155
  *
140
- * @param {RegExp} [pattern] defaults to {@link PasswordPatterns#CHAR8_ONE_OF_EACH}
156
+ * @param {RegExp} [pattern] defaults to {@link DEFAULT_PATTERNS#CHAR8_ONE_OF_EACH}
141
157
  * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#PASSWORD}
142
- * @param {Constructor<Validator>} [validator] Defaults to {@link PasswordValidator}
143
158
  *
144
159
  * @function password
145
160
  *
146
- * @memberOf module:decorator-validation.Decorators.Validation
147
161
  * @category Decorators
148
162
  */
149
- export declare function password(pattern?: RegExp, message?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
163
+ export declare function password(pattern?: RegExp, message?: string): (target: object, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
150
164
  /**
151
165
  * @summary List Decorator
152
166
  * @description Also sets the {@link type} to the provided collection
@@ -154,25 +168,21 @@ export declare function password(pattern?: RegExp, message?: string): (target: o
154
168
  * @param {ModelConstructor} clazz
155
169
  * @param {string} [collection] The collection being used. defaults to Array
156
170
  * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#LIST}
157
- * @param {Constructor<Validator>} [validator] defaults to {@link ListValidator}
158
171
  *
159
172
  * @function list
160
173
  *
161
- * @memberOf module:decorator-validation.Decorators.Validation
162
174
  * @category Decorators
163
175
  */
164
- export declare function list(clazz: ModelConstructor<any> | ModelConstructor<any>[], collection?: "Array" | "Set", message?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
176
+ export declare function list(clazz: ModelConstructor<any> | ModelConstructor<any>[], collection?: "Array" | "Set", message?: string): (target: object, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
165
177
  /**
166
178
  * @summary Set Decorator
167
179
  * @description Wrapper for {@link list} with the 'Set' Collection
168
180
  *
169
181
  * @param {ModelConstructor} clazz
170
182
  * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#LIST}
171
- * @param {Constructor<Validator>} [validator]
172
183
  *
173
184
  * @function set
174
185
  *
175
- * @memberOf module:decorator-validation.Decorators.Validation
176
186
  * @category Decorators
177
187
  */
178
- export declare function set(clazz: ModelConstructor<any>, message?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
188
+ export declare function set(clazz: ModelConstructor<any>, message?: string): (target: object, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;