@decaf-ts/decorator-validation 1.6.3 → 1.6.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 (167) hide show
  1. package/dist/decorator-validation.cjs +1016 -1164
  2. package/dist/decorator-validation.esm.cjs +971 -1134
  3. package/lib/constants/index.cjs +18 -0
  4. package/lib/constants/index.d.ts +1 -0
  5. package/lib/constants/validation.cjs +14 -0
  6. package/lib/constants/validation.d.ts +10 -0
  7. package/lib/esm/constants/index.d.ts +1 -0
  8. package/lib/esm/constants/index.js +2 -0
  9. package/lib/esm/constants/validation.d.ts +10 -0
  10. package/lib/esm/constants/validation.js +11 -0
  11. package/lib/esm/index.d.ts +37 -5
  12. package/lib/esm/index.js +38 -6
  13. package/lib/esm/model/Model.d.ts +29 -100
  14. package/lib/esm/model/Model.js +37 -104
  15. package/lib/esm/model/constants.d.ts +3 -3
  16. package/lib/esm/model/constants.js +4 -4
  17. package/lib/esm/model/construction.d.ts +3 -3
  18. package/lib/esm/model/construction.js +4 -4
  19. package/lib/esm/model/decorators.d.ts +4 -4
  20. package/lib/esm/model/decorators.js +5 -6
  21. package/lib/esm/model/types.d.ts +11 -30
  22. package/lib/esm/model/types.js +1 -1
  23. package/lib/esm/model/validation.d.ts +2 -2
  24. package/lib/esm/model/validation.js +18 -7
  25. package/lib/esm/utils/constants.d.ts +9 -27
  26. package/lib/esm/utils/constants.js +10 -28
  27. package/lib/esm/utils/dates.d.ts +16 -26
  28. package/lib/esm/utils/dates.js +17 -27
  29. package/lib/esm/utils/decorators.d.ts +0 -41
  30. package/lib/esm/utils/decorators.js +1 -42
  31. package/lib/esm/utils/hashing.d.ts +6 -50
  32. package/lib/esm/utils/hashing.js +5 -49
  33. package/lib/esm/utils/index.d.ts +0 -1
  34. package/lib/esm/utils/index.js +1 -2
  35. package/lib/esm/utils/registry.d.ts +2 -2
  36. package/lib/esm/utils/registry.js +1 -1
  37. package/lib/esm/utils/serialization.d.ts +1 -1
  38. package/lib/esm/utils/serialization.js +2 -2
  39. package/lib/esm/utils/strings.d.ts +4 -4
  40. package/lib/esm/utils/strings.js +5 -5
  41. package/lib/esm/utils/types.d.ts +16 -123
  42. package/lib/esm/utils/types.js +1 -1
  43. package/lib/esm/validation/Validators/DateValidator.d.ts +8 -40
  44. package/lib/esm/validation/Validators/DateValidator.js +9 -41
  45. package/lib/esm/validation/Validators/DiffValidator.d.ts +27 -0
  46. package/lib/esm/validation/Validators/DiffValidator.js +58 -0
  47. package/lib/esm/validation/Validators/EmailValidator.d.ts +7 -39
  48. package/lib/esm/validation/Validators/EmailValidator.js +8 -40
  49. package/lib/esm/validation/Validators/EqualsValidator.d.ts +27 -0
  50. package/lib/esm/validation/Validators/EqualsValidator.js +63 -0
  51. package/lib/esm/validation/Validators/GreaterThanOrEqualValidator.d.ts +27 -0
  52. package/lib/esm/validation/Validators/GreaterThanOrEqualValidator.js +65 -0
  53. package/lib/esm/validation/Validators/GreaterThanValidator.d.ts +27 -0
  54. package/lib/esm/validation/Validators/GreaterThanValidator.js +62 -0
  55. package/lib/esm/validation/Validators/LessThanOrEqualValidator.d.ts +27 -0
  56. package/lib/esm/validation/Validators/LessThanOrEqualValidator.js +65 -0
  57. package/lib/esm/validation/Validators/LessThanValidator.d.ts +27 -0
  58. package/lib/esm/validation/Validators/LessThanValidator.js +62 -0
  59. package/lib/esm/validation/Validators/ListValidator.d.ts +6 -44
  60. package/lib/esm/validation/Validators/ListValidator.js +7 -45
  61. package/lib/esm/validation/Validators/MaxValidator.d.ts +6 -52
  62. package/lib/esm/validation/Validators/MaxValidator.js +7 -53
  63. package/lib/esm/validation/Validators/MinValidator.d.ts +6 -52
  64. package/lib/esm/validation/Validators/MinValidator.js +7 -53
  65. package/lib/esm/validation/Validators/PatternValidator.d.ts +9 -75
  66. package/lib/esm/validation/Validators/PatternValidator.js +10 -76
  67. package/lib/esm/validation/Validators/RequiredValidator.d.ts +6 -52
  68. package/lib/esm/validation/Validators/RequiredValidator.js +7 -53
  69. package/lib/esm/validation/Validators/TypeValidator.d.ts +6 -60
  70. package/lib/esm/validation/Validators/TypeValidator.js +7 -69
  71. package/lib/esm/validation/Validators/URLValidator.d.ts +7 -41
  72. package/lib/esm/validation/Validators/URLValidator.js +8 -42
  73. package/lib/esm/validation/Validators/Validator.d.ts +17 -77
  74. package/lib/esm/validation/Validators/Validator.js +11 -68
  75. package/lib/esm/validation/Validators/ValidatorRegistry.d.ts +7 -1
  76. package/lib/esm/validation/Validators/ValidatorRegistry.js +11 -4
  77. package/lib/esm/validation/Validators/constants.d.ts +41 -0
  78. package/lib/esm/validation/Validators/constants.js +43 -1
  79. package/lib/esm/validation/Validators/index.d.ts +7 -0
  80. package/lib/esm/validation/Validators/index.js +8 -1
  81. package/lib/esm/validation/Validators/utils.d.ts +52 -0
  82. package/lib/esm/validation/Validators/utils.js +174 -0
  83. package/lib/esm/validation/decorators.d.ts +124 -50
  84. package/lib/esm/validation/decorators.js +173 -102
  85. package/lib/esm/validation/types.d.ts +46 -146
  86. package/lib/esm/validation/types.js +1 -1
  87. package/lib/index.cjs +39 -7
  88. package/lib/index.d.ts +37 -5
  89. package/lib/model/Model.cjs +39 -104
  90. package/lib/model/Model.d.ts +29 -100
  91. package/lib/model/constants.cjs +4 -4
  92. package/lib/model/constants.d.ts +3 -3
  93. package/lib/model/construction.cjs +4 -4
  94. package/lib/model/construction.d.ts +3 -3
  95. package/lib/model/decorators.cjs +5 -6
  96. package/lib/model/decorators.d.ts +4 -4
  97. package/lib/model/types.cjs +1 -1
  98. package/lib/model/types.d.ts +11 -30
  99. package/lib/model/validation.cjs +25 -14
  100. package/lib/model/validation.d.ts +2 -2
  101. package/lib/utils/constants.cjs +11 -29
  102. package/lib/utils/constants.d.ts +9 -27
  103. package/lib/utils/dates.cjs +17 -27
  104. package/lib/utils/dates.d.ts +16 -26
  105. package/lib/utils/decorators.cjs +1 -42
  106. package/lib/utils/decorators.d.ts +0 -41
  107. package/lib/utils/hashing.cjs +5 -49
  108. package/lib/utils/hashing.d.ts +6 -50
  109. package/lib/utils/index.cjs +1 -2
  110. package/lib/utils/index.d.ts +0 -1
  111. package/lib/utils/registry.cjs +1 -1
  112. package/lib/utils/registry.d.ts +2 -2
  113. package/lib/utils/serialization.cjs +2 -2
  114. package/lib/utils/serialization.d.ts +1 -1
  115. package/lib/utils/strings.cjs +5 -5
  116. package/lib/utils/strings.d.ts +4 -4
  117. package/lib/utils/types.cjs +1 -1
  118. package/lib/utils/types.d.ts +16 -123
  119. package/lib/validation/Validators/DateValidator.cjs +9 -41
  120. package/lib/validation/Validators/DateValidator.d.ts +8 -40
  121. package/lib/validation/Validators/DiffValidator.cjs +61 -0
  122. package/lib/validation/Validators/DiffValidator.d.ts +27 -0
  123. package/lib/validation/Validators/EmailValidator.cjs +8 -40
  124. package/lib/validation/Validators/EmailValidator.d.ts +7 -39
  125. package/lib/validation/Validators/EqualsValidator.cjs +66 -0
  126. package/lib/validation/Validators/EqualsValidator.d.ts +27 -0
  127. package/lib/validation/Validators/GreaterThanOrEqualValidator.cjs +68 -0
  128. package/lib/validation/Validators/GreaterThanOrEqualValidator.d.ts +27 -0
  129. package/lib/validation/Validators/GreaterThanValidator.cjs +65 -0
  130. package/lib/validation/Validators/GreaterThanValidator.d.ts +27 -0
  131. package/lib/validation/Validators/LessThanOrEqualValidator.cjs +68 -0
  132. package/lib/validation/Validators/LessThanOrEqualValidator.d.ts +27 -0
  133. package/lib/validation/Validators/LessThanValidator.cjs +65 -0
  134. package/lib/validation/Validators/LessThanValidator.d.ts +27 -0
  135. package/lib/validation/Validators/ListValidator.cjs +7 -45
  136. package/lib/validation/Validators/ListValidator.d.ts +6 -44
  137. package/lib/validation/Validators/MaxValidator.cjs +7 -53
  138. package/lib/validation/Validators/MaxValidator.d.ts +6 -52
  139. package/lib/validation/Validators/MinValidator.cjs +7 -53
  140. package/lib/validation/Validators/MinValidator.d.ts +6 -52
  141. package/lib/validation/Validators/PatternValidator.cjs +10 -76
  142. package/lib/validation/Validators/PatternValidator.d.ts +9 -75
  143. package/lib/validation/Validators/RequiredValidator.cjs +7 -53
  144. package/lib/validation/Validators/RequiredValidator.d.ts +6 -52
  145. package/lib/validation/Validators/TypeValidator.cjs +7 -69
  146. package/lib/validation/Validators/TypeValidator.d.ts +6 -60
  147. package/lib/validation/Validators/URLValidator.cjs +8 -42
  148. package/lib/validation/Validators/URLValidator.d.ts +7 -41
  149. package/lib/validation/Validators/Validator.cjs +11 -68
  150. package/lib/validation/Validators/Validator.d.ts +17 -77
  151. package/lib/validation/Validators/ValidatorRegistry.cjs +12 -4
  152. package/lib/validation/Validators/ValidatorRegistry.d.ts +7 -1
  153. package/lib/validation/Validators/constants.cjs +44 -2
  154. package/lib/validation/Validators/constants.d.ts +41 -0
  155. package/lib/validation/Validators/index.cjs +8 -1
  156. package/lib/validation/Validators/index.d.ts +7 -0
  157. package/lib/validation/Validators/utils.cjs +180 -0
  158. package/lib/validation/Validators/utils.d.ts +52 -0
  159. package/lib/validation/decorators.cjs +179 -102
  160. package/lib/validation/decorators.d.ts +124 -50
  161. package/lib/validation/types.cjs +1 -1
  162. package/lib/validation/types.d.ts +46 -146
  163. package/package.json +1 -1
  164. package/lib/esm/utils/Decoration.d.ts +0 -123
  165. package/lib/esm/utils/Decoration.js +0 -188
  166. package/lib/utils/Decoration.cjs +0 -192
  167. package/lib/utils/Decoration.d.ts +0 -123
@@ -1,54 +1,28 @@
1
1
  import "reflect-metadata";
2
2
  import { ModelConstructor } from "../model/types";
3
3
  /**
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.
4
+ * @summary Marks the property as required.
5
+ * @description Validators to validate a decorated property must use key {@link ValidationKeys#REQUIRED}
8
6
  *
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
7
+ * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#REQUIRED}
11
8
  *
12
9
  * @function required
13
- * @category Decorators
14
- *
15
- * @example
16
- * ```typescript
17
- * class User {
18
- * @required()
19
- * username: string;
20
10
  *
21
- * @required("Email address is mandatory")
22
- * email: string;
23
- * }
24
- * ```
11
+ * @category Decorators
25
12
  */
26
- export declare function required(message?: string): (target: object, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
13
+ export declare function required(message?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
27
14
  /**
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.
15
+ * @summary Defines a minimum value for the property
16
+ * @description Validators to validate a decorated property must use key {@link ValidationKeys#MIN}
32
17
  *
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
18
+ * @param {number | Date} value
19
+ * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#MIN}
36
20
  *
37
21
  * @function min
22
+ * @memberOf module:decorator-validation.Decorators.Validation
38
23
  * @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
- * ```
50
24
  */
51
- export declare function min(value: number | Date | string, message?: string): (target: object, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
25
+ export declare function min(value: number | Date | string, message?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
52
26
  /**
53
27
  * @summary Defines a maximum value for the property
54
28
  * @description Validators to validate a decorated property must use key {@link ValidationKeys#MAX}
@@ -57,9 +31,10 @@ export declare function min(value: number | Date | string, message?: string): (t
57
31
  * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#MAX}
58
32
  *
59
33
  * @function max
34
+ * @memberOf module:decorator-validation.Decorators.Validation
60
35
  * @category Decorators
61
36
  */
62
- export declare function max(value: number | Date | string, message?: string): (target: object, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
37
+ export declare function max(value: number | Date | string, message?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
63
38
  /**
64
39
  * @summary Defines a step value for the property
65
40
  * @description Validators to validate a decorated property must use key {@link ValidationKeys#STEP}
@@ -68,9 +43,10 @@ export declare function max(value: number | Date | string, message?: string): (t
68
43
  * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#STEP}
69
44
  *
70
45
  * @function step
46
+ * @memberOf module:decorator-validation.Decorators.Validation
71
47
  * @category Decorators
72
48
  */
73
- export declare function step(value: number, message?: string): (target: object, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
49
+ export declare function step(value: number, message?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
74
50
  /**
75
51
  * @summary Defines a minimum length for the property
76
52
  * @description Validators to validate a decorated property must use key {@link ValidationKeys#MIN_LENGTH}
@@ -79,9 +55,10 @@ export declare function step(value: number, message?: string): (target: object,
79
55
  * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#MIN_LENGTH}
80
56
  *
81
57
  * @function minlength
58
+ * @memberOf module:decorator-validation.Decorators.Validation
82
59
  * @category Decorators
83
60
  */
84
- export declare function minlength(value: number, message?: string): (target: object, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
61
+ export declare function minlength(value: number, message?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
85
62
  /**
86
63
  * @summary Defines a maximum length for the property
87
64
  * @description Validators to validate a decorated property must use key {@link ValidationKeys#MAX_LENGTH}
@@ -90,9 +67,10 @@ export declare function minlength(value: number, message?: string): (target: obj
90
67
  * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#MAX_LENGTH}
91
68
  *
92
69
  * @function maxlength
70
+ * @memberOf module:decorator-validation.Decorators.Validation
93
71
  * @category Decorators
94
72
  */
95
- export declare function maxlength(value: number, message?: string): (target: object, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
73
+ export declare function maxlength(value: number, message?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
96
74
  /**
97
75
  * @summary Defines a RegExp pattern the property must respect
98
76
  * @description Validators to validate a decorated property must use key {@link ValidationKeys#PATTERN}
@@ -101,9 +79,10 @@ export declare function maxlength(value: number, message?: string): (target: obj
101
79
  * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#PATTERN}
102
80
  *
103
81
  * @function pattern
82
+ * @memberOf module:decorator-validation.Decorators.Validation
104
83
  * @category Decorators
105
84
  */
106
- export declare function pattern(value: RegExp | string, message?: string): (target: object, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
85
+ export declare function pattern(value: RegExp | string, message?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
107
86
  /**
108
87
  * @summary Defines the property as an email
109
88
  * @description Validators to validate a decorated property must use key {@link ValidationKeys#EMAIL}
@@ -111,9 +90,10 @@ export declare function pattern(value: RegExp | string, message?: string): (targ
111
90
  * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#EMAIL}
112
91
  *
113
92
  * @function email
93
+ * @memberOf module:decorator-validation.Decorators.Validation
114
94
  * @category Decorators
115
95
  */
116
- export declare function email(message?: string): (target: object, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
96
+ export declare function email(message?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
117
97
  /**
118
98
  * @summary Defines the property as an URL
119
99
  * @description Validators to validate a decorated property must use key {@link ValidationKeys#URL}
@@ -121,9 +101,10 @@ export declare function email(message?: string): (target: object, propertyKey?:
121
101
  * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#URL}
122
102
  *
123
103
  * @function url
104
+ * @memberOf module:decorator-validation.Decorators.Validation
124
105
  * @category Decorators
125
106
  */
126
- export declare function url(message?: string): (target: object, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
107
+ export declare function url(message?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
127
108
  /**
128
109
  * @summary Enforces type verification
129
110
  * @description Validators to validate a decorated property must use key {@link ValidationKeys#TYPE}
@@ -132,9 +113,10 @@ export declare function url(message?: string): (target: object, propertyKey?: an
132
113
  * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#TYPE}
133
114
  *
134
115
  * @function type
116
+ * @memberOf module:decorator-validation.Decorators.Validation
135
117
  * @category Decorators
136
118
  */
137
- export declare function type(types: string[] | string, message?: string): (target: object, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
119
+ export declare function type(types: string[] | string, message?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
138
120
  /**
139
121
  * @summary Date Handler Decorator
140
122
  * @description Validators to validate a decorated property must use key {@link ValidationKeys#DATE}
@@ -143,24 +125,28 @@ export declare function type(types: string[] | string, message?: string): (targe
143
125
  *
144
126
  * @param {string} format accepted format according to {@link formatDate}
145
127
  * @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}
146
129
  *
147
130
  * @function date
148
131
  *
132
+ * @memberOf module:decorator-validation.Decorators.Validation
149
133
  * @category Decorators
150
134
  */
151
- export declare function date(format?: string, message?: string): (target: object, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
135
+ export declare function date(format?: string, message?: string): (target: Record<string, any>, propertyKey?: any) => any;
152
136
  /**
153
137
  * @summary Password Handler Decorator
154
138
  * @description Validators to validate a decorated property must use key {@link ValidationKeys#PASSWORD}
155
139
  *
156
- * @param {RegExp} [pattern] defaults to {@link DEFAULT_PATTERNS#CHAR8_ONE_OF_EACH}
140
+ * @param {RegExp} [pattern] defaults to {@link PasswordPatterns#CHAR8_ONE_OF_EACH}
157
141
  * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#PASSWORD}
142
+ * @param {Constructor<Validator>} [validator] Defaults to {@link PasswordValidator}
158
143
  *
159
144
  * @function password
160
145
  *
146
+ * @memberOf module:decorator-validation.Decorators.Validation
161
147
  * @category Decorators
162
148
  */
163
- export declare function password(pattern?: RegExp, message?: string): (target: object, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
149
+ export declare function password(pattern?: RegExp, message?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
164
150
  /**
165
151
  * @summary List Decorator
166
152
  * @description Also sets the {@link type} to the provided collection
@@ -168,21 +154,109 @@ export declare function password(pattern?: RegExp, message?: string): (target: o
168
154
  * @param {ModelConstructor} clazz
169
155
  * @param {string} [collection] The collection being used. defaults to Array
170
156
  * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#LIST}
157
+ * @param {Constructor<Validator>} [validator] defaults to {@link ListValidator}
171
158
  *
172
159
  * @function list
173
160
  *
161
+ * @memberOf module:decorator-validation.Decorators.Validation
174
162
  * @category Decorators
175
163
  */
176
- export declare function list(clazz: ModelConstructor<any> | ModelConstructor<any>[], collection?: "Array" | "Set", message?: string): (target: object, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
164
+ export declare function list(clazz: ModelConstructor<any> | ModelConstructor<any>[], collection?: "Array" | "Set", message?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
177
165
  /**
178
166
  * @summary Set Decorator
179
167
  * @description Wrapper for {@link list} with the 'Set' Collection
180
168
  *
181
169
  * @param {ModelConstructor} clazz
182
170
  * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#LIST}
171
+ * @param {Constructor<Validator>} [validator]
183
172
  *
184
173
  * @function set
185
174
  *
175
+ * @memberOf module:decorator-validation.Decorators.Validation
176
+ * @category Decorators
177
+ */
178
+ export declare function set(clazz: ModelConstructor<any>, message?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
179
+ /**
180
+ * @summary Declares that the decorated property must be equal to another specified property.
181
+ * @description Applies the {@link ValidationKeys.EQUALS} validator to ensure the decorated value matches the value of the given property.
182
+ *
183
+ * @param {string} propertyToCompare - The name of the property to compare equality against.
184
+ * @param {string} [message=DEFAULT_ERROR_MESSAGES.EQUALS] - Custom error message to return if validation fails.
185
+ *
186
+ * @returns {PropertyDecorator} A property decorator used to register the equality validation metadata.
187
+ *
188
+ * @function eq
189
+ * @memberOf module:decorator-validation.Decorators.Validation
190
+ * @category Decorators
191
+ */
192
+ export declare function eq(propertyToCompare: string, message?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
193
+ /**
194
+ * @summary Declares that the decorated property must be different from another specified property.
195
+ * @description Applies the {@link ValidationKeys.DIFF} validator to ensure the decorated value is different from the value of the given property.
196
+ *
197
+ * @param {string} propertyToCompare - The name of the property to compare difference against.
198
+ * @param {string} [message=DEFAULT_ERROR_MESSAGES.DIFF] - Custom error message to return if validation fails.
199
+ *
200
+ * @returns {PropertyDecorator} A property decorator used to register the difference validation metadata.
201
+ *
202
+ * @function diff
203
+ * @memberOf module:decorator-validation.Decorators.Validation
204
+ * @category Decorators
205
+ */
206
+ export declare function diff(propertyToCompare: string, message?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
207
+ /**
208
+ * @summary Declares that the decorated property must be less than another specified property.
209
+ * @description Applies the {@link ValidationKeys.LESS_THAN} validator to ensure the decorated value is less than the value of the given property.
210
+ *
211
+ * @param {string} propertyToCompare - The name of the property to compare against.
212
+ * @param {string} [message=DEFAULT_ERROR_MESSAGES.LESS_THAN] - Custom error message to return if validation fails.
213
+ *
214
+ * @returns {PropertyDecorator} A property decorator used to register the less than validation metadata.
215
+ *
216
+ * @function lt
217
+ * @memberOf module:decorator-validation.Decorators.Validation
218
+ * @category Decorators
219
+ */
220
+ export declare function lt(propertyToCompare: string, message?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
221
+ /**
222
+ * @summary Declares that the decorated property must be equal or less than another specified property.
223
+ * @description Applies the {@link ValidationKeys.LESS_THAN_OR_EQUAL} validator to ensure the decorated value is equal or less than the value of the given property.
224
+ *
225
+ * @param {string} propertyToCompare - The name of the property to compare against.
226
+ * @param {string} [message=DEFAULT_ERROR_MESSAGES.LESS_THAN_OR_EQUAL] - Custom error message to return if validation fails.
227
+ *
228
+ * @returns {PropertyDecorator} A property decorator used to register the less than or equal validation metadata.
229
+ *
230
+ * @function lte
231
+ * @memberOf module:decorator-validation.Decorators.Validation
232
+ * @category Decorators
233
+ */
234
+ export declare function lte(propertyToCompare: string, message?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
235
+ /**
236
+ * @summary Declares that the decorated property must be greater than another specified property.
237
+ * @description Applies the {@link ValidationKeys.GREATER_THAN} validator to ensure the decorated value is greater than the value of the given property.
238
+ *
239
+ * @param {string} propertyToCompare - The name of the property to compare against.
240
+ * @param {string} [message=DEFAULT_ERROR_MESSAGES.GREATER_THAN] - Custom error message to return if validation fails.
241
+ *
242
+ * @returns {PropertyDecorator} A property decorator used to register the greater than validation metadata.
243
+ *
244
+ * @function gt
245
+ * @memberOf module:decorator-validation.Decorators.Validation
246
+ * @category Decorators
247
+ */
248
+ export declare function gt(propertyToCompare: string, message?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
249
+ /**
250
+ * @summary Declares that the decorated property must be equal or greater than another specified property.
251
+ * @description Applies the {@link ValidationKeys.GREATER_THAN_OR_EQUAL} validator to ensure the decorated value is equal or greater than the value of the given property.
252
+ *
253
+ * @param {string} propertyToCompare - The name of the property to compare against.
254
+ * @param {string} [message=DEFAULT_ERROR_MESSAGES.GREATER_THAN_OR_EQUAL] - Custom error message to return if validation fails.
255
+ *
256
+ * @returns {PropertyDecorator} A property decorator used to register the greater than or equal validation metadata.
257
+ *
258
+ * @function gte
259
+ * @memberOf module:decorator-validation.Decorators.Validation
186
260
  * @category Decorators
187
261
  */
188
- export declare function set(clazz: ModelConstructor<any>, message?: string): (target: object, propertyKey?: any, descriptor?: TypedPropertyDescriptor<any>) => any;
262
+ export declare function gte(propertyToCompare: string, message?: string): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const Validators_1 = require("./Validators/index.cjs");
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGlvbi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLDZDQUF5RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlY29yYXRvck1ldGFkYXRhIH0gZnJvbSBcIkBkZWNhZi10cy9yZWZsZWN0aW9uXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciB9IGZyb20gXCIuLi9tb2RlbFwiO1xuaW1wb3J0IHsgVmFsaWRhdGlvbktleXMsIFZhbGlkYXRvciB9IGZyb20gXCIuL1ZhbGlkYXRvcnNcIjtcbmltcG9ydCB7IElSZWdpc3RyeSB9IGZyb20gXCIuLi91dGlsc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBUeXBlIGRlZmluaXRpb24gZm9yIG1ldGFkYXRhIHVzZWQgYnkgdmFsaWRhdGlvbiBkZWNvcmF0b3JzXG4gKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSBzdHJ1Y3R1cmUgb2YgbWV0YWRhdGEgYXR0YWNoZWQgdG8gcHJvcGVydGllcyBieSB2YWxpZGF0aW9uIGRlY29yYXRvcnMuXG4gKiBUaGlzIG1ldGFkYXRhIGlzIHVzZWQgZHVyaW5nIHZhbGlkYXRpb24gdG8gZGV0ZXJtaW5lIHZhbGlkYXRpb24gcnVsZXMgYW5kIGVycm9yIG1lc3NhZ2VzLlxuICpcbiAqIEBwcm9wZXJ0eSB7YW55W119IFthcmdzXSAtIE9wdGlvbmFsIGFyZ3VtZW50cyBmb3IgdGhlIHZhbGlkYXRvclxuICogQHByb3BlcnR5IHtzdHJpbmd9IG1lc3NhZ2UgLSBFcnJvciBtZXNzYWdlIHRvIGRpc3BsYXkgd2hlbiB2YWxpZGF0aW9uIGZhaWxzXG4gKiBAcHJvcGVydHkge3N0cmluZ1tdfSBbdHlwZXNdIC0gQXJyYXkgb2YgdHlwZSBuYW1lcyB0aGF0IHRoZSBwcm9wZXJ0eSBjYW4gaGF2ZVxuICpcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFZhbGlkYXRpb25NZXRhZGF0YVxuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvblxuICogQGNhdGVnb3J5IFZhbGlkYXRpb25cbiAqL1xuZXhwb3J0IHR5cGUgVmFsaWRhdGlvbk1ldGFkYXRhID0ge1xuICBbaW5kZXhlcjogc3RyaW5nXTogYW55O1xuICBhcmdzPzogYW55W107XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgdHlwZXM/OiBzdHJpbmdbXTtcbn07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFR5cGUgZGVmaW5pdGlvbiBmb3IgcHJvcGVydHktbGV2ZWwgdmFsaWRhdGlvbiBkZWNvcmF0b3IgY29uZmlndXJhdGlvblxuICogQHN1bW1hcnkgRGVmaW5lcyB0aGUgc3RydWN0dXJlIHRoYXQgYXNzb2NpYXRlcyBhIHByb3BlcnR5IHdpdGggaXRzIHZhbGlkYXRpb24gZGVjb3JhdG9ycy5cbiAqIFRoaXMgdHlwZSBpcyB1c2VkIHRvIHRyYWNrIHdoaWNoIGRlY29yYXRvcnMgYXJlIGFwcGxpZWQgdG8gYSBzcGVjaWZpYyBwcm9wZXJ0eSBkdXJpbmcgdmFsaWRhdGlvbi5cbiAqXG4gKiBAcHJvcGVydHkge3N0cmluZ3xzeW1ib2x9IHByb3AgLSBUaGUgcHJvcGVydHkgbmFtZSBvciBzeW1ib2wgdGhhdCB0aGUgZGVjb3JhdG9ycyBhcmUgYXBwbGllZCB0b1xuICogQHByb3BlcnR5IHtWYWxpZGF0aW9uRGVjb3JhdG9yRGVmaW5pdGlvbltdfSBkZWNvcmF0b3JzIC0gQXJyYXkgb2YgZGVjb3JhdG9yIGRlZmluaXRpb25zIGFwcGxpZWQgdG8gdGhlIHByb3BlcnR5XG4gKlxuICogQHR5cGVkZWYge09iamVjdH0gVmFsaWRhdGlvblByb3BlcnR5RGVjb3JhdG9yRGVmaW5pdGlvblxuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvblxuICogQGNhdGVnb3J5IFZhbGlkYXRpb25cbiAqL1xuZXhwb3J0IHR5cGUgVmFsaWRhdGlvblByb3BlcnR5RGVjb3JhdG9yRGVmaW5pdGlvbiA9IHtcbiAgcHJvcDogc3RyaW5nIHwgc3ltYm9sO1xuICBkZWNvcmF0b3JzOiBWYWxpZGF0aW9uRGVjb3JhdG9yRGVmaW5pdGlvbltdO1xufTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gVHlwZSBkZWZpbml0aW9uIGZvciBpbmRpdmlkdWFsIHZhbGlkYXRpb24gZGVjb3JhdG9yIG1ldGFkYXRhXG4gKiBAc3VtbWFyeSBFeHRlbmRzIHRoZSBiYXNlIERlY29yYXRvck1ldGFkYXRhIHR5cGUgd2l0aCB2YWxpZGF0aW9uLXNwZWNpZmljIHByb3BlcnRpZXMuXG4gKiBUaGlzIHR5cGUgcmVwcmVzZW50cyB0aGUgbWV0YWRhdGEgZm9yIGEgc2luZ2xlIHZhbGlkYXRpb24gZGVjb3JhdG9yIGFwcGxpZWQgdG8gYSBwcm9wZXJ0eS5cbiAqXG4gKiBAcHJvcGVydHkge1ZhbGlkYXRpb25FbGVtZW50RGVmaW5pdGlvbn0gcHJvcHMgLSBUaGUgdmFsaWRhdGlvbiBlbGVtZW50IHByb3BlcnRpZXMgYW5kIGNvbmZpZ3VyYXRpb25cbiAqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBWYWxpZGF0aW9uRGVjb3JhdG9yRGVmaW5pdGlvblxuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvblxuICogQGNhdGVnb3J5IFZhbGlkYXRpb25cbiAqL1xuZXhwb3J0IHR5cGUgVmFsaWRhdGlvbkRlY29yYXRvckRlZmluaXRpb24gPSBEZWNvcmF0b3JNZXRhZGF0YSAmIHtcbiAgcHJvcHM6IFZhbGlkYXRpb25FbGVtZW50RGVmaW5pdGlvbjtcbn07XG5cbi8qKlxuICogQHN1bW1hcnkgVHlwZSBmb3IgYSB2YWxpZGF0b3IgZWxlbWVudCBtZXRhZGF0YVxuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvblxuICogQGNhdGVnb3J5IFZhbGlkYXRpb25cbiAqL1xuZXhwb3J0IHR5cGUgVmFsaWRhdGlvbkVsZW1lbnREZWZpbml0aW9uID0ge1xuICBbaW5kZXhlcjogc3RyaW5nXTogYW55O1xuXG4gIHZhbHVlPzogc3RyaW5nIHwgbnVtYmVyO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIHR5cGVzPzogc3RyaW5nW107XG59O1xuXG4vKipcbiAqIEBzdW1tYXJ5IFR5cGUgZm9yIGEgbW9kZWwgZXJyb3JzXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRlY29yYXRvci12YWxpZGF0aW9uXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdGlvblxuICovXG5leHBvcnQgdHlwZSBNb2RlbEVycm9ycyA9IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD4+O1xuXG4vKipcbiAqIEBzdW1tYXJ5IFV0aWwgdHlwZSBmb3Ige0BsaW5rIFZhbGlkYXRvcn0gY29uZmlndXJhdGlvblxuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvblxuICogQGNhdGVnb3J5IFZhbGlkYXRpb25cbiAqL1xuZXhwb3J0IHR5cGUgVmFsaWRhdG9yRGVmaW5pdGlvbiA9IHtcbiAgdmFsaWRhdG9yOiBDb25zdHJ1Y3RvcjxWYWxpZGF0b3I+O1xuICB2YWxpZGF0aW9uS2V5OiBzdHJpbmc7XG4gIHNhdmU6IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBJbnRlcmZhY2UgZm9yIGEgcmVnaXN0cnkgdGhhdCBtYW5hZ2VzIHZhbGlkYXRvciBpbnN0YW5jZXNcbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIGNvbnRyYWN0IGZvciBhIHJlZ2lzdHJ5IHRoYXQgc3RvcmVzIGFuZCByZXRyaWV2ZXMgdmFsaWRhdG9ycy5cbiAqIFRoZSByZWdpc3RyeSBpcyByZXNwb25zaWJsZSBmb3IgbWFpbnRhaW5pbmcgYSBjb2xsZWN0aW9uIG9mIHZhbGlkYXRvcnMgYW5kIHByb3ZpZGluZ1xuICogYWNjZXNzIHRvIHRoZW0gYnkga2V5LlxuICpcbiAqIEBpbnRlcmZhY2UgSVZhbGlkYXRvclJlZ2lzdHJ5XG4gKiBAdGVtcGxhdGUgVCBUeXBlIG9mIHZhbGlkYXRvciwgbXVzdCBleHRlbmQgVmFsaWRhdG9yXG4gKiBAZXh0ZW5kcyBJUmVnaXN0cnk8VD5cbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdG9yLXZhbGlkYXRpb25cbiAqIEBjYXRlZ29yeSBWYWxpZGF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVZhbGlkYXRvclJlZ2lzdHJ5PFQgZXh0ZW5kcyBWYWxpZGF0b3I+IGV4dGVuZHMgSVJlZ2lzdHJ5PFQ+IHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZXRyaWV2ZXMgY3VzdG9tIHZhbGlkYXRpb24ga2V5cyBkZWZpbmVkIGluIHRoZSByZWdpc3RyeVxuICAgKiBAc3VtbWFyeSBSZXR1cm5zIGEgbWFwcGluZyBvZiBjdXN0b20gdmFsaWRhdGlvbiBrZXlzIHRvIHRoZWlyIGNvcnJlc3BvbmRpbmcgc3RhbmRhcmQga2V5cy5cbiAgICogVGhpcyBhbGxvd3MgZm9yIGFsaWFzaW5nIHZhbGlkYXRpb24ga2V5cyBmb3Igc3BlY2lmaWMgdXNlIGNhc2VzLlxuICAgKlxuICAgKiBAcmV0dXJuIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSBPYmplY3QgbWFwcGluZyBjdXN0b20ga2V5cyB0byBzdGFuZGFyZCB2YWxpZGF0aW9uIGtleXNcbiAgICovXG4gIGdldEN1c3RvbUtleXMoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEdldHMgYWxsIHJlZ2lzdGVyZWQgdmFsaWRhdG9yIGtleXNcbiAgICogQHN1bW1hcnkgUmV0dXJucyBhbiBhcnJheSBvZiBhbGwgdmFsaWRhdGlvbiBrZXlzIHRoYXQgaGF2ZSByZWdpc3RlcmVkIHZhbGlkYXRvcnMuXG4gICAqXG4gICAqIEByZXR1cm4ge3N0cmluZ1tdfSBBcnJheSBvZiByZWdpc3RlcmVkIHZhbGlkYXRvciBrZXlzXG4gICAqL1xuICBnZXRLZXlzKCk6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmVnaXN0ZXJzIG9uZSBvciBtb3JlIHZhbGlkYXRvcnMgd2l0aCB0aGUgcmVnaXN0cnlcbiAgICogQHN1bW1hcnkgQWRkcyB2YWxpZGF0b3JzIHRvIHRoZSByZWdpc3RyeSwgbWFraW5nIHRoZW0gYXZhaWxhYmxlIGZvciB2YWxpZGF0aW9uIG9wZXJhdGlvbnMuXG4gICAqIFZhbGlkYXRvcnMgY2FuIGJlIHByb3ZpZGVkIGFzIGluc3RhbmNlcyBvciBhcyB2YWxpZGF0b3IgZGVmaW5pdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSB7Li4uKFR8VmFsaWRhdG9yRGVmaW5pdGlvbil9IHZhbGlkYXRvciAtIFZhbGlkYXRvciBpbnN0YW5jZXMgb3IgZGVmaW5pdGlvbnMgdG8gcmVnaXN0ZXJcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIHJlZ2lzdGVyPFQgZXh0ZW5kcyBWYWxpZGF0b3I+KFxuICAgIC4uLnZhbGlkYXRvcjogKFQgfCBWYWxpZGF0b3JEZWZpbml0aW9uKVtdXG4gICk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZXRyaWV2ZXMgYSB2YWxpZGF0b3IgYnkgaXRzIGtleVxuICAgKiBAc3VtbWFyeSBMb29rcyB1cCBhIHZhbGlkYXRvciBpbiB0aGUgcmVnaXN0cnkgdXNpbmcgaXRzIHZhbGlkYXRpb24ga2V5LlxuICAgKiBSZXR1cm5zIHRoZSB2YWxpZGF0b3IgaWYgZm91bmQsIG9yIHVuZGVmaW5lZCBpZiBubyB2YWxpZGF0b3IgaXMgcmVnaXN0ZXJlZCBmb3IgdGhlIGtleS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSB2YWxpZGF0aW9uIGtleSB0byBsb29rIHVwLCB0eXBpY2FsbHkgb25lIG9mIHRoZSB7QGxpbmsgVmFsaWRhdGlvbktleXN9XG4gICAqIEByZXR1cm4ge1R8dW5kZWZpbmVkfSBUaGUgcmVnaXN0ZXJlZCB2YWxpZGF0b3Igb3IgdW5kZWZpbmVkIGlmIG5vbmUgbWF0Y2hlcyB0aGUgcHJvdmlkZWQga2V5XG4gICAqL1xuICBnZXQ8VCBleHRlbmRzIFZhbGlkYXRvcj4oa2V5OiBzdHJpbmcpOiBUIHwgdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBCYXNlIG9wdGlvbnMgdHlwZSBmb3IgYWxsIHZhbGlkYXRvcnNcbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIGNvbW1vbiBwcm9wZXJ0aWVzIGF2YWlsYWJsZSB0byBhbGwgdmFsaWRhdG9yc1xuICogQHR5cGVkZWYgVmFsaWRhdG9yT3B0aW9uc1xuICogQHByb3BlcnR5IHtzdHJpbmd9IFttZXNzYWdlXSAtIEN1c3RvbSBlcnJvciBtZXNzYWdlIHRvIGRpc3BsYXkgd2hlbiB2YWxpZGF0aW9uIGZhaWxzXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRlY29yYXRvci12YWxpZGF0aW9uXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdGlvblxuICovXG5leHBvcnQgdHlwZSBWYWxpZGF0b3JPcHRpb25zID0ge1xuICBtZXNzYWdlPzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gVVJMIHZhbGlkYXRpb24gb3B0aW9ucyBpbnRlcmZhY2VcbiAqIEBzdW1tYXJ5IERlZmluZXMgb3B0aW9ucyBmb3IgVVJMIHZhbGlkYXRpb24sIGluY2x1ZGluZyBhbGxvd2VkIFVSTCB0eXBlc1xuICogQGludGVyZmFjZSBVUkxWYWxpZGF0b3JPcHRpb25zXG4gKiBAcHJvcGVydHkgeyhzdHJpbmd8c3RyaW5nW118eyBuYW1lOiBzdHJpbmcgfSl9IHR5cGVzIC0gU3BlY2lmaWVzIHRoZSBhbGxvd2VkIFVSTCB0eXBlcyBvciBwYXR0ZXJuc1xuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvblxuICogQGNhdGVnb3J5IFZhbGlkYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVUkxWYWxpZGF0b3JPcHRpb25zIGV4dGVuZHMgVmFsaWRhdG9yT3B0aW9ucyB7XG4gIHR5cGVzOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHsgbmFtZTogc3RyaW5nIH07XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFR5cGUgdmFsaWRhdGlvbiBvcHRpb25zIGludGVyZmFjZVxuICogQHN1bW1hcnkgRGVmaW5lcyBvcHRpb25zIGZvciB0eXBlIHZhbGlkYXRpb24sIHNwZWNpZnlpbmcgYWxsb3dlZCB0eXBlc1xuICogQGludGVyZmFjZSBUeXBlVmFsaWRhdG9yT3B0aW9uc1xuICogQHByb3BlcnR5IHsoc3RyaW5nfHN0cmluZ1tdfHsgbmFtZTogc3RyaW5nIH0pfSB0eXBlcyAtIFNwZWNpZmllcyB0aGUgYWxsb3dlZCBkYXRhIHR5cGVzXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRlY29yYXRvci12YWxpZGF0aW9uXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVWYWxpZGF0b3JPcHRpb25zIGV4dGVuZHMgVmFsaWRhdG9yT3B0aW9ucyB7XG4gIHR5cGVzOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHsgbmFtZTogc3RyaW5nIH07XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFN0ZXAgdmFsaWRhdGlvbiBvcHRpb25zIGludGVyZmFjZVxuICogQHN1bW1hcnkgRGVmaW5lcyBvcHRpb25zIGZvciBzdGVwIHZhbGlkYXRpb24sIHNwZWNpZnlpbmcgdGhlIHN0ZXAgaW5jcmVtZW50XG4gKiBAaW50ZXJmYWNlIFN0ZXBWYWxpZGF0b3JPcHRpb25zXG4gKiBAcHJvcGVydHkgeyhudW1iZXJ8c3RyaW5nKX0gW1ZhbGlkYXRpb25LZXlzLlNURVBdIC0gVGhlIHN0ZXAgdmFsdWUgZm9yIG51bWVyaWNhbCB2YWxpZGF0aW9uXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRlY29yYXRvci12YWxpZGF0aW9uXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0ZXBWYWxpZGF0b3JPcHRpb25zIGV4dGVuZHMgVmFsaWRhdG9yT3B0aW9ucyB7XG4gIFtWYWxpZGF0aW9uS2V5cy5TVEVQXTogbnVtYmVyIHwgc3RyaW5nO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBQYXR0ZXJuIHZhbGlkYXRpb24gb3B0aW9ucyBpbnRlcmZhY2VcbiAqIEBzdW1tYXJ5IERlZmluZXMgb3B0aW9ucyBmb3IgcGF0dGVybiB2YWxpZGF0aW9uIHVzaW5nIHJlZ3VsYXIgZXhwcmVzc2lvbnNcbiAqIEBpbnRlcmZhY2UgUGF0dGVyblZhbGlkYXRvck9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7KFJlZ0V4cHxzdHJpbmcpfSBbVmFsaWRhdGlvbktleXMuUEFUVEVSTl0gLSBUaGUgcGF0dGVybiB0byBtYXRjaCBhZ2FpbnN0XG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRlY29yYXRvci12YWxpZGF0aW9uXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhdHRlcm5WYWxpZGF0b3JPcHRpb25zIGV4dGVuZHMgVmFsaWRhdG9yT3B0aW9ucyB7XG4gIFtWYWxpZGF0aW9uS2V5cy5QQVRURVJOXT86IFJlZ0V4cCB8IHN0cmluZztcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gTWluaW11bSB2YWx1ZSB2YWxpZGF0aW9uIG9wdGlvbnMgaW50ZXJmYWNlXG4gKiBAc3VtbWFyeSBEZWZpbmVzIG9wdGlvbnMgZm9yIG1pbmltdW0gdmFsdWUgdmFsaWRhdGlvblxuICogQGludGVyZmFjZSBNaW5WYWxpZGF0b3JPcHRpb25zXG4gKiBAcHJvcGVydHkgeyhudW1iZXJ8RGF0ZXxzdHJpbmcpfSBbVmFsaWRhdGlvbktleXMuTUlOXSAtIFRoZSBtaW5pbXVtIGFsbG93ZWQgdmFsdWVcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdG9yLXZhbGlkYXRpb25cbiAqIEBjYXRlZ29yeSBWYWxpZGF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWluVmFsaWRhdG9yT3B0aW9ucyBleHRlbmRzIFZhbGlkYXRvck9wdGlvbnMge1xuICBbVmFsaWRhdGlvbktleXMuTUlOXTogbnVtYmVyIHwgRGF0ZSB8IHN0cmluZztcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gTWluaW11bSBsZW5ndGggdmFsaWRhdGlvbiBvcHRpb25zIGludGVyZmFjZVxuICogQHN1bW1hcnkgRGVmaW5lcyBvcHRpb25zIGZvciBtaW5pbXVtIGxlbmd0aCB2YWxpZGF0aW9uXG4gKiBAaW50ZXJmYWNlIE1pbkxlbmd0aFZhbGlkYXRvck9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBbVmFsaWRhdGlvbktleXMuTUlOX0xFTkdUSF0gLSBUaGUgbWluaW11bSBhbGxvd2VkIGxlbmd0aFxuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvblxuICogQGNhdGVnb3J5IFZhbGlkYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNaW5MZW5ndGhWYWxpZGF0b3JPcHRpb25zIGV4dGVuZHMgVmFsaWRhdG9yT3B0aW9ucyB7XG4gIFtWYWxpZGF0aW9uS2V5cy5NSU5fTEVOR1RIXTogbnVtYmVyO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBNYXhpbXVtIHZhbHVlIHZhbGlkYXRpb24gb3B0aW9ucyBpbnRlcmZhY2VcbiAqIEBzdW1tYXJ5IERlZmluZXMgb3B0aW9ucyBmb3IgbWF4aW11bSB2YWx1ZSB2YWxpZGF0aW9uXG4gKiBAaW50ZXJmYWNlIE1heFZhbGlkYXRvck9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7KG51bWJlcnxEYXRlfHN0cmluZyl9IFtWYWxpZGF0aW9uS2V5cy5NQVhdIC0gVGhlIG1heGltdW0gYWxsb3dlZCB2YWx1ZVxuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvblxuICogQGNhdGVnb3J5IFZhbGlkYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNYXhWYWxpZGF0b3JPcHRpb25zIGV4dGVuZHMgVmFsaWRhdG9yT3B0aW9ucyB7XG4gIFtWYWxpZGF0aW9uS2V5cy5NQVhdOiBudW1iZXIgfCBEYXRlIHwgc3RyaW5nO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBNYXhpbXVtIGxlbmd0aCB2YWxpZGF0aW9uIG9wdGlvbnMgaW50ZXJmYWNlXG4gKiBAc3VtbWFyeSBEZWZpbmVzIG9wdGlvbnMgZm9yIG1heGltdW0gbGVuZ3RoIHZhbGlkYXRpb25cbiAqIEBpbnRlcmZhY2UgTWF4TGVuZ3RoVmFsaWRhdG9yT3B0aW9uc1xuICogQHByb3BlcnR5IHtudW1iZXJ9IFtWYWxpZGF0aW9uS2V5cy5NQVhfTEVOR1RIXSAtIFRoZSBtYXhpbXVtIGFsbG93ZWQgbGVuZ3RoXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRlY29yYXRvci12YWxpZGF0aW9uXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1heExlbmd0aFZhbGlkYXRvck9wdGlvbnMgZXh0ZW5kcyBWYWxpZGF0b3JPcHRpb25zIHtcbiAgW1ZhbGlkYXRpb25LZXlzLk1BWF9MRU5HVEhdOiBudW1iZXI7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIExpc3QgdmFsaWRhdGlvbiBvcHRpb25zIGludGVyZmFjZVxuICogQHN1bW1hcnkgRGVmaW5lcyBvcHRpb25zIGZvciBsaXN0IHZhbGlkYXRpb25cbiAqIEBpbnRlcmZhY2UgTGlzdFZhbGlkYXRvck9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nW119IGNsYXp6IC0gQXJyYXkgb2YgYWxsb3dlZCBjbGFzcyBuYW1lcyBvciB0eXBlc1xuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvblxuICogQGNhdGVnb3J5IFZhbGlkYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaXN0VmFsaWRhdG9yT3B0aW9ucyBleHRlbmRzIFZhbGlkYXRvck9wdGlvbnMge1xuICBjbGF6ejogc3RyaW5nW107XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIERhdGUgdmFsaWRhdGlvbiBvcHRpb25zIGludGVyZmFjZVxuICogQHN1bW1hcnkgRGVmaW5lcyBvcHRpb25zIGZvciBkYXRlIHZhbGlkYXRpb25cbiAqIEBpbnRlcmZhY2UgRGF0ZVZhbGlkYXRvck9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbVmFsaWRhdGlvbktleXMuRk9STUFUXSAtIFRoZSBleHBlY3RlZCBkYXRlIGZvcm1hdCBwYXR0ZXJuXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRlY29yYXRvci12YWxpZGF0aW9uXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGVWYWxpZGF0b3JPcHRpb25zIGV4dGVuZHMgVmFsaWRhdG9yT3B0aW9ucyB7XG4gIFtWYWxpZGF0aW9uS2V5cy5GT1JNQVRdPzogc3RyaW5nO1xufVxuIl19
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGlvbi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLDZDQUF5RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlY29yYXRvck1ldGFkYXRhIH0gZnJvbSBcIkBkZWNhZi10cy9yZWZsZWN0aW9uXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciB9IGZyb20gXCIuLi9tb2RlbFwiO1xuaW1wb3J0IHsgVmFsaWRhdGlvbktleXMsIFZhbGlkYXRvciB9IGZyb20gXCIuL1ZhbGlkYXRvcnNcIjtcbmltcG9ydCB7IElSZWdpc3RyeSB9IGZyb20gXCIuLi91dGlsc1wiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IFR5cGUgZm9yIHZhbGlkYXRpb24gZGVjb3JhdG9yIG1ldGFkYXRhXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRlY29yYXRvci12YWxpZGF0aW9uLlJlZmxlY3Rpb25cbiAqIEBjYXRlZ29yeSBSZWZsZWN0aW9uXG4gKi9cbmV4cG9ydCB0eXBlIFZhbGlkYXRpb25NZXRhZGF0YSA9IHtcbiAgW2luZGV4ZXI6IHN0cmluZ106IGFueTtcbiAgYXJncz86IGFueVtdO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIHR5cGVzPzogc3RyaW5nW107XG59O1xuXG4vKipcbiAqIEBzdW1tYXJ5IFR5cGUgZm9yIGEgdmFsaWRhdG9yIHByb3BlcnR5IGRlY29yYXRvciBkZWZpbml0aW9uXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRlY29yYXRvci12YWxpZGF0aW9uLlZhbGlkYXRpb25cbiAqIEBjYXRlZ29yeSBWYWxpZGF0aW9uXG4gKi9cbmV4cG9ydCB0eXBlIFZhbGlkYXRpb25Qcm9wZXJ0eURlY29yYXRvckRlZmluaXRpb24gPSB7XG4gIHByb3A6IHN0cmluZyB8IHN5bWJvbDtcbiAgZGVjb3JhdG9yczogVmFsaWRhdGlvbkRlY29yYXRvckRlZmluaXRpb25bXTtcbn07XG5cbi8qKlxuICogQHN1bW1hcnkgVHlwZSBmb3IgYSB2YWxpZGF0b3IgZGVjb3JhdG9yIGRlZmluaXRpb25cbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdG9yLXZhbGlkYXRpb24uVmFsaWRhdGlvblxuICogQGNhdGVnb3J5IFZhbGlkYXRpb25cbiAqL1xuZXhwb3J0IHR5cGUgVmFsaWRhdGlvbkRlY29yYXRvckRlZmluaXRpb24gPSBEZWNvcmF0b3JNZXRhZGF0YSAmIHtcbiAgcHJvcHM6IFZhbGlkYXRpb25FbGVtZW50RGVmaW5pdGlvbjtcbn07XG5cbi8qKlxuICogQHN1bW1hcnkgVHlwZSBmb3IgYSB2YWxpZGF0b3IgZWxlbWVudCBtZXRhZGF0YVxuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvbi5WYWxpZGF0aW9uXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdGlvblxuICovXG5leHBvcnQgdHlwZSBWYWxpZGF0aW9uRWxlbWVudERlZmluaXRpb24gPSB7XG4gIFtpbmRleGVyOiBzdHJpbmddOiBhbnk7XG5cbiAgdmFsdWU/OiBzdHJpbmcgfCBudW1iZXI7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgdHlwZXM/OiBzdHJpbmdbXTtcbn07XG5cbi8qKlxuICogQHN1bW1hcnkgVHlwZSBmb3IgYSBtb2RlbCBlcnJvcnNcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdG9yLXZhbGlkYXRpb24uVmFsaWRhdGlvblxuICogQGNhdGVnb3J5IFZhbGlkYXRpb25cbiAqL1xuZXhwb3J0IHR5cGUgTW9kZWxFcnJvcnMgPSBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+PjtcblxuLyoqXG4gKiBAc3VtbWFyeSBVdGlsIHR5cGUgZm9yIHtAbGluayBWYWxpZGF0b3J9IGNvbmZpZ3VyYXRpb25cbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdG9yLXZhbGlkYXRpb24uVmFsaWRhdGlvblxuICogQGNhdGVnb3J5IFZhbGlkYXRpb25cbiAqL1xuZXhwb3J0IHR5cGUgVmFsaWRhdG9yRGVmaW5pdGlvbiA9IHtcbiAgdmFsaWRhdG9yOiBDb25zdHJ1Y3RvcjxWYWxpZGF0b3I+O1xuICB2YWxpZGF0aW9uS2V5OiBzdHJpbmc7XG4gIHNhdmU6IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIEBzdW1tYXJ5IEJhc2UgQVBJIGZvciBhIHtAbGluayBWYWxpZGF0b3J9IHJlZ2lzdHJ5XG4gKlxuICogQGludGVyZmFjZSBWYWxpZGF0b3JSZWdpc3RyeVxuICogQGV4dGVuZHMgSVJlZ2lzdHJ5XG4gKlxuICogQGNhdGVnb3J5IFZhbGlkYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJVmFsaWRhdG9yUmVnaXN0cnk8VCBleHRlbmRzIFZhbGlkYXRvcj4gZXh0ZW5kcyBJUmVnaXN0cnk8VD4ge1xuICAvKipcbiAgICogQHN1bW1hcnkgcmV0cmlldmVzIHRoZSBjdXN0b20ga2V5c1xuICAgKiBAbWV0aG9kXG4gICAqL1xuICBnZXRDdXN0b21LZXlzKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFJldHJpZXZlcyB0aGUgUmVnaXN0ZXJlZCB2YWxpZGF0b3Iga2V5c1xuICAgKiBAcmV0dXJuIHtzdHJpbmdbXX0gdGhlIHJlZ2lzdGVyZWQgdmFsaWRhdG9ycyBrZXlzXG4gICAqIEBtZXRob2RcbiAgICovXG4gIGdldEtleXMoKTogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFJlZ2lzdGVycyB0aGUgcHJvdmlkZWQgdmFsaWRhdG9ycyBvbnRvIHRoZSByZWdpc3RyeVxuICAgKlxuICAgKiBAdHlwZWRlZiBUIGV4dGVuZHMgVmFsaWRhdG9yXG4gICAqIEBwYXJhbSB7VFtdIHwgVmFsaWRhdG9yRGVmaW5pdGlvbltdfSB2YWxpZGF0b3JcbiAgICogQG1ldGhvZFxuICAgKi9cbiAgcmVnaXN0ZXI8VCBleHRlbmRzIFZhbGlkYXRvcj4oXG4gICAgLi4udmFsaWRhdG9yOiAoVCB8IFZhbGlkYXRvckRlZmluaXRpb24pW11cbiAgKTogdm9pZDtcblxuICAvKipcbiAgICogQHN1bW1hcnkgUmV0cmlldmVzIHRoZSBWYWxpZGF0b3IgY29uc3RydWN0b3IgaWYgcmVnaXN0ZXJlZFxuICAgKlxuICAgKiBAdHlwZWRlZiBUIGV4dGVuZHMgVmFsaWRhdG9yXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgb25lIG9mIHRoZSB7QGxpbmsgVmFsaWRhdGlvbktleXN9XG4gICAqIEByZXR1cm4ge1ZhbGlkYXRvciB8IHVuZGVmaW5lZH0gdGhlIHJlZ2lzdGVyZWQgVmFsaWRhdG9yIG9yIHVuZGVmaW5lZCBpZiB0aGVyZSBpcyBub25vIG1hdGNoaW5nIHRoZSBwcm92aWRlZCBrZXlcbiAgICogQG1ldGhvZFxuICAgKi9cbiAgZ2V0PFQgZXh0ZW5kcyBWYWxpZGF0b3I+KGtleTogc3RyaW5nKTogVCB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IHR5cGUgVmFsaWRhdG9yT3B0aW9ucyA9IHtcbiAgbWVzc2FnZT86IHN0cmluZztcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgVVJMVmFsaWRhdG9yT3B0aW9ucyBleHRlbmRzIFZhbGlkYXRvck9wdGlvbnMge1xuICB0eXBlczogc3RyaW5nIHwgc3RyaW5nW10gfCB7IG5hbWU6IHN0cmluZyB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVWYWxpZGF0b3JPcHRpb25zIGV4dGVuZHMgVmFsaWRhdG9yT3B0aW9ucyB7XG4gIHR5cGVzOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHsgbmFtZTogc3RyaW5nIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RlcFZhbGlkYXRvck9wdGlvbnMgZXh0ZW5kcyBWYWxpZGF0b3JPcHRpb25zIHtcbiAgW1ZhbGlkYXRpb25LZXlzLlNURVBdOiBudW1iZXIgfCBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF0dGVyblZhbGlkYXRvck9wdGlvbnMgZXh0ZW5kcyBWYWxpZGF0b3JPcHRpb25zIHtcbiAgW1ZhbGlkYXRpb25LZXlzLlBBVFRFUk5dPzogUmVnRXhwIHwgc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1pblZhbGlkYXRvck9wdGlvbnMgZXh0ZW5kcyBWYWxpZGF0b3JPcHRpb25zIHtcbiAgW1ZhbGlkYXRpb25LZXlzLk1JTl06IG51bWJlciB8IERhdGUgfCBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWluTGVuZ3RoVmFsaWRhdG9yT3B0aW9ucyBleHRlbmRzIFZhbGlkYXRvck9wdGlvbnMge1xuICBbVmFsaWRhdGlvbktleXMuTUlOX0xFTkdUSF06IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXhWYWxpZGF0b3JPcHRpb25zIGV4dGVuZHMgVmFsaWRhdG9yT3B0aW9ucyB7XG4gIFtWYWxpZGF0aW9uS2V5cy5NQVhdOiBudW1iZXIgfCBEYXRlIHwgc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1heExlbmd0aFZhbGlkYXRvck9wdGlvbnMgZXh0ZW5kcyBWYWxpZGF0b3JPcHRpb25zIHtcbiAgW1ZhbGlkYXRpb25LZXlzLk1BWF9MRU5HVEhdOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFZhbGlkYXRvck9wdGlvbnMgZXh0ZW5kcyBWYWxpZGF0b3JPcHRpb25zIHtcbiAgY2xheno6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGVWYWxpZGF0b3JPcHRpb25zIGV4dGVuZHMgVmFsaWRhdG9yT3B0aW9ucyB7XG4gIFtWYWxpZGF0aW9uS2V5cy5GT1JNQVRdPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVxdWFsc1ZhbGlkYXRvck9wdGlvbnMgZXh0ZW5kcyBWYWxpZGF0b3JPcHRpb25zIHtcbiAgW1ZhbGlkYXRpb25LZXlzLkVRVUFMU106IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaWZmVmFsaWRhdG9yT3B0aW9ucyBleHRlbmRzIFZhbGlkYXRvck9wdGlvbnMge1xuICBbVmFsaWRhdGlvbktleXMuRElGRl06IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMZXNzVGhhblZhbGlkYXRvck9wdGlvbnMgZXh0ZW5kcyBWYWxpZGF0b3JPcHRpb25zIHtcbiAgW1ZhbGlkYXRpb25LZXlzLkxFU1NfVEhBTl06IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMZXNzVGhhbk9yRXF1YWxWYWxpZGF0b3JPcHRpb25zIGV4dGVuZHMgVmFsaWRhdG9yT3B0aW9ucyB7XG4gIFtWYWxpZGF0aW9uS2V5cy5MRVNTX1RIQU5fT1JfRVFVQUxdOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JlYXRlclRoYW5WYWxpZGF0b3JPcHRpb25zIGV4dGVuZHMgVmFsaWRhdG9yT3B0aW9ucyB7XG4gIFtWYWxpZGF0aW9uS2V5cy5HUkVBVEVSX1RIQU5dOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3JlYXRlclRoYW5PckVxdWFsVmFsaWRhdG9yT3B0aW9ucyBleHRlbmRzIFZhbGlkYXRvck9wdGlvbnMge1xuICBbVmFsaWRhdGlvbktleXMuR1JFQVRFUl9USEFOX09SX0VRVUFMXTogc3RyaW5nO1xufVxuIl19
@@ -3,17 +3,9 @@ import { Constructor } from "../model";
3
3
  import { ValidationKeys, Validator } from "./Validators";
4
4
  import { IRegistry } from "../utils";
5
5
  /**
6
- * @description Type definition for metadata used by validation decorators
7
- * @summary Defines the structure of metadata attached to properties by validation decorators.
8
- * This metadata is used during validation to determine validation rules and error messages.
9
- *
10
- * @property {any[]} [args] - Optional arguments for the validator
11
- * @property {string} message - Error message to display when validation fails
12
- * @property {string[]} [types] - Array of type names that the property can have
13
- *
14
- * @typedef {Object} ValidationMetadata
15
- * @memberOf module:decorator-validation
16
- * @category Validation
6
+ * @summary Type for validation decorator metadata
7
+ * @memberOf module:decorator-validation.Reflection
8
+ * @category Reflection
17
9
  */
18
10
  export type ValidationMetadata = {
19
11
  [indexer: string]: any;
@@ -22,15 +14,8 @@ export type ValidationMetadata = {
22
14
  types?: string[];
23
15
  };
24
16
  /**
25
- * @description Type definition for property-level validation decorator configuration
26
- * @summary Defines the structure that associates a property with its validation decorators.
27
- * This type is used to track which decorators are applied to a specific property during validation.
28
- *
29
- * @property {string|symbol} prop - The property name or symbol that the decorators are applied to
30
- * @property {ValidationDecoratorDefinition[]} decorators - Array of decorator definitions applied to the property
31
- *
32
- * @typedef {Object} ValidationPropertyDecoratorDefinition
33
- * @memberOf module:decorator-validation
17
+ * @summary Type for a validator property decorator definition
18
+ * @memberOf module:decorator-validation.Validation
34
19
  * @category Validation
35
20
  */
36
21
  export type ValidationPropertyDecoratorDefinition = {
@@ -38,14 +23,8 @@ export type ValidationPropertyDecoratorDefinition = {
38
23
  decorators: ValidationDecoratorDefinition[];
39
24
  };
40
25
  /**
41
- * @description Type definition for individual validation decorator metadata
42
- * @summary Extends the base DecoratorMetadata type with validation-specific properties.
43
- * This type represents the metadata for a single validation decorator applied to a property.
44
- *
45
- * @property {ValidationElementDefinition} props - The validation element properties and configuration
46
- *
47
- * @typedef {Object} ValidationDecoratorDefinition
48
- * @memberOf module:decorator-validation
26
+ * @summary Type for a validator decorator definition
27
+ * @memberOf module:decorator-validation.Validation
49
28
  * @category Validation
50
29
  */
51
30
  export type ValidationDecoratorDefinition = DecoratorMetadata & {
@@ -53,7 +32,7 @@ export type ValidationDecoratorDefinition = DecoratorMetadata & {
53
32
  };
54
33
  /**
55
34
  * @summary Type for a validator element metadata
56
- * @memberOf module:decorator-validation
35
+ * @memberOf module:decorator-validation.Validation
57
36
  * @category Validation
58
37
  */
59
38
  export type ValidationElementDefinition = {
@@ -64,13 +43,13 @@ export type ValidationElementDefinition = {
64
43
  };
65
44
  /**
66
45
  * @summary Type for a model errors
67
- * @memberOf module:decorator-validation
46
+ * @memberOf module:decorator-validation.Validation
68
47
  * @category Validation
69
48
  */
70
49
  export type ModelErrors = Record<string, Record<string, string | undefined>>;
71
50
  /**
72
51
  * @summary Util type for {@link Validator} configuration
73
- * @memberOf module:decorator-validation
52
+ * @memberOf module:decorator-validation.Validation
74
53
  * @category Validation
75
54
  */
76
55
  export type ValidatorDefinition = {
@@ -79,174 +58,95 @@ export type ValidatorDefinition = {
79
58
  save: boolean;
80
59
  };
81
60
  /**
82
- * @description Interface for a registry that manages validator instances
83
- * @summary Defines the contract for a registry that stores and retrieves validators.
84
- * The registry is responsible for maintaining a collection of validators and providing
85
- * access to them by key.
61
+ * @summary Base API for a {@link Validator} registry
62
+ *
63
+ * @interface ValidatorRegistry
64
+ * @extends IRegistry
86
65
  *
87
- * @interface IValidatorRegistry
88
- * @template T Type of validator, must extend Validator
89
- * @extends IRegistry<T>
90
- * @memberOf module:decorator-validation
91
66
  * @category Validation
92
67
  */
93
68
  export interface IValidatorRegistry<T extends Validator> extends IRegistry<T> {
94
69
  /**
95
- * @description Retrieves custom validation keys defined in the registry
96
- * @summary Returns a mapping of custom validation keys to their corresponding standard keys.
97
- * This allows for aliasing validation keys for specific use cases.
98
- *
99
- * @return {Record<string, string>} Object mapping custom keys to standard validation keys
70
+ * @summary retrieves the custom keys
71
+ * @method
100
72
  */
101
73
  getCustomKeys(): Record<string, string>;
102
74
  /**
103
- * @description Gets all registered validator keys
104
- * @summary Returns an array of all validation keys that have registered validators.
105
- *
106
- * @return {string[]} Array of registered validator keys
75
+ * @summary Retrieves the Registered validator keys
76
+ * @return {string[]} the registered validators keys
77
+ * @method
107
78
  */
108
79
  getKeys(): string[];
109
80
  /**
110
- * @description Registers one or more validators with the registry
111
- * @summary Adds validators to the registry, making them available for validation operations.
112
- * Validators can be provided as instances or as validator definitions.
81
+ * @summary Registers the provided validators onto the registry
113
82
  *
114
- * @param {...(T|ValidatorDefinition)} validator - Validator instances or definitions to register
115
- * @return {void}
83
+ * @typedef T extends Validator
84
+ * @param {T[] | ValidatorDefinition[]} validator
85
+ * @method
116
86
  */
117
87
  register<T extends Validator>(...validator: (T | ValidatorDefinition)[]): void;
118
88
  /**
119
- * @description Retrieves a validator by its key
120
- * @summary Looks up a validator in the registry using its validation key.
121
- * Returns the validator if found, or undefined if no validator is registered for the key.
89
+ * @summary Retrieves the Validator constructor if registered
122
90
  *
123
- * @param {string} key - The validation key to look up, typically one of the {@link ValidationKeys}
124
- * @return {T|undefined} The registered validator or undefined if none matches the provided key
91
+ * @typedef T extends Validator
92
+ * @param {string} key one of the {@link ValidationKeys}
93
+ * @return {Validator | undefined} the registered Validator or undefined if there is nono matching the provided key
94
+ * @method
125
95
  */
126
96
  get<T extends Validator>(key: string): T | undefined;
127
97
  }
128
- /**
129
- * @description Base options type for all validators
130
- * @summary Defines the common properties available to all validators
131
- * @typedef ValidatorOptions
132
- * @property {string} [message] - Custom error message to display when validation fails
133
- * @memberOf module:decorator-validation
134
- * @category Validation
135
- */
136
98
  export type ValidatorOptions = {
137
99
  message?: string;
138
100
  };
139
- /**
140
- * @description URL validation options interface
141
- * @summary Defines options for URL validation, including allowed URL types
142
- * @interface URLValidatorOptions
143
- * @property {(string|string[]|{ name: string })} types - Specifies the allowed URL types or patterns
144
- * @memberOf module:decorator-validation
145
- * @category Validation
146
- */
147
101
  export interface URLValidatorOptions extends ValidatorOptions {
148
102
  types: string | string[] | {
149
103
  name: string;
150
104
  };
151
105
  }
152
- /**
153
- * @description Type validation options interface
154
- * @summary Defines options for type validation, specifying allowed types
155
- * @interface TypeValidatorOptions
156
- * @property {(string|string[]|{ name: string })} types - Specifies the allowed data types
157
- * @memberOf module:decorator-validation
158
- * @category Validation
159
- */
160
106
  export interface TypeValidatorOptions extends ValidatorOptions {
161
107
  types: string | string[] | {
162
108
  name: string;
163
109
  };
164
110
  }
165
- /**
166
- * @description Step validation options interface
167
- * @summary Defines options for step validation, specifying the step increment
168
- * @interface StepValidatorOptions
169
- * @property {(number|string)} [ValidationKeys.STEP] - The step value for numerical validation
170
- * @memberOf module:decorator-validation
171
- * @category Validation
172
- */
173
111
  export interface StepValidatorOptions extends ValidatorOptions {
174
112
  [ValidationKeys.STEP]: number | string;
175
113
  }
176
- /**
177
- * @description Pattern validation options interface
178
- * @summary Defines options for pattern validation using regular expressions
179
- * @interface PatternValidatorOptions
180
- * @property {(RegExp|string)} [ValidationKeys.PATTERN] - The pattern to match against
181
- * @memberOf module:decorator-validation
182
- * @category Validation
183
- */
184
114
  export interface PatternValidatorOptions extends ValidatorOptions {
185
115
  [ValidationKeys.PATTERN]?: RegExp | string;
186
116
  }
187
- /**
188
- * @description Minimum value validation options interface
189
- * @summary Defines options for minimum value validation
190
- * @interface MinValidatorOptions
191
- * @property {(number|Date|string)} [ValidationKeys.MIN] - The minimum allowed value
192
- * @memberOf module:decorator-validation
193
- * @category Validation
194
- */
195
117
  export interface MinValidatorOptions extends ValidatorOptions {
196
118
  [ValidationKeys.MIN]: number | Date | string;
197
119
  }
198
- /**
199
- * @description Minimum length validation options interface
200
- * @summary Defines options for minimum length validation
201
- * @interface MinLengthValidatorOptions
202
- * @property {number} [ValidationKeys.MIN_LENGTH] - The minimum allowed length
203
- * @memberOf module:decorator-validation
204
- * @category Validation
205
- */
206
120
  export interface MinLengthValidatorOptions extends ValidatorOptions {
207
121
  [ValidationKeys.MIN_LENGTH]: number;
208
122
  }
209
- /**
210
- * @description Maximum value validation options interface
211
- * @summary Defines options for maximum value validation
212
- * @interface MaxValidatorOptions
213
- * @property {(number|Date|string)} [ValidationKeys.MAX] - The maximum allowed value
214
- * @memberOf module:decorator-validation
215
- * @category Validation
216
- */
217
123
  export interface MaxValidatorOptions extends ValidatorOptions {
218
124
  [ValidationKeys.MAX]: number | Date | string;
219
125
  }
220
- /**
221
- * @description Maximum length validation options interface
222
- * @summary Defines options for maximum length validation
223
- * @interface MaxLengthValidatorOptions
224
- * @property {number} [ValidationKeys.MAX_LENGTH] - The maximum allowed length
225
- * @memberOf module:decorator-validation
226
- * @category Validation
227
- */
228
126
  export interface MaxLengthValidatorOptions extends ValidatorOptions {
229
127
  [ValidationKeys.MAX_LENGTH]: number;
230
128
  }
231
- /**
232
- * @description List validation options interface
233
- * @summary Defines options for list validation
234
- * @interface ListValidatorOptions
235
- * @property {string[]} clazz - Array of allowed class names or types
236
- * @memberOf module:decorator-validation
237
- * @category Validation
238
- */
239
129
  export interface ListValidatorOptions extends ValidatorOptions {
240
130
  clazz: string[];
241
131
  }
242
- /**
243
- * @description Date validation options interface
244
- * @summary Defines options for date validation
245
- * @interface DateValidatorOptions
246
- * @property {string} [ValidationKeys.FORMAT] - The expected date format pattern
247
- * @memberOf module:decorator-validation
248
- * @category Validation
249
- */
250
132
  export interface DateValidatorOptions extends ValidatorOptions {
251
133
  [ValidationKeys.FORMAT]?: string;
252
134
  }
135
+ export interface EqualsValidatorOptions extends ValidatorOptions {
136
+ [ValidationKeys.EQUALS]: string;
137
+ }
138
+ export interface DiffValidatorOptions extends ValidatorOptions {
139
+ [ValidationKeys.DIFF]: string;
140
+ }
141
+ export interface LessThanValidatorOptions extends ValidatorOptions {
142
+ [ValidationKeys.LESS_THAN]: string;
143
+ }
144
+ export interface LessThanOrEqualValidatorOptions extends ValidatorOptions {
145
+ [ValidationKeys.LESS_THAN_OR_EQUAL]: string;
146
+ }
147
+ export interface GreaterThanValidatorOptions extends ValidatorOptions {
148
+ [ValidationKeys.GREATER_THAN]: string;
149
+ }
150
+ export interface GreaterThanOrEqualValidatorOptions extends ValidatorOptions {
151
+ [ValidationKeys.GREATER_THAN_OR_EQUAL]: string;
152
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decaf-ts/decorator-validation",
3
- "version": "1.6.3",
3
+ "version": "1.6.5",
4
4
  "description": "simple decorator based validation engine",
5
5
  "type": "module",
6
6
  "exports": {