@decaf-ts/decorator-validation 1.5.2 → 1.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/README.md +34 -108
  2. package/dist/decorator-validation.js +2 -0
  3. package/dist/decorator-validation.js.LICENSE.txt +14 -0
  4. package/dist/esm/decorator-validation.js +2 -0
  5. package/dist/esm/decorator-validation.js.LICENSE.txt +14 -0
  6. package/lib/esm/index.d.ts +42 -0
  7. package/lib/esm/index.js +44 -0
  8. package/lib/esm/model/Model.d.ts +138 -0
  9. package/lib/esm/model/Model.js +298 -0
  10. package/lib/esm/model/ModelErrorDefinition.d.ts +22 -0
  11. package/lib/esm/model/ModelErrorDefinition.js +54 -0
  12. package/lib/esm/model/Registry.d.ts +59 -0
  13. package/lib/esm/model/Registry.js +75 -0
  14. package/lib/esm/model/constants.d.ts +56 -0
  15. package/lib/esm/model/constants.js +71 -0
  16. package/lib/esm/model/construction.d.ts +29 -0
  17. package/lib/esm/model/construction.js +65 -0
  18. package/lib/esm/model/decorators.d.ts +25 -0
  19. package/lib/esm/model/decorators.js +64 -0
  20. package/lib/esm/model/index.d.ts +9 -0
  21. package/lib/esm/model/index.js +11 -0
  22. package/lib/esm/model/types.d.ts +79 -0
  23. package/lib/esm/model/types.js +3 -0
  24. package/lib/esm/model/utils.d.ts +11 -0
  25. package/lib/esm/model/utils.js +27 -0
  26. package/lib/esm/model/validation.d.ts +14 -0
  27. package/lib/esm/model/validation.js +137 -0
  28. package/lib/esm/utils/constants.d.ts +26 -0
  29. package/lib/esm/utils/constants.js +29 -0
  30. package/lib/esm/utils/dates.d.ts +76 -0
  31. package/lib/esm/utils/dates.js +245 -0
  32. package/lib/esm/utils/decorators.d.ts +2 -0
  33. package/lib/esm/utils/decorators.js +20 -0
  34. package/lib/esm/utils/hashing.d.ts +52 -0
  35. package/lib/esm/utils/hashing.js +101 -0
  36. package/lib/esm/utils/index.d.ts +7 -0
  37. package/lib/esm/utils/index.js +9 -0
  38. package/lib/esm/utils/registry.d.ts +68 -0
  39. package/lib/esm/utils/registry.js +3 -0
  40. package/lib/esm/utils/serialization.d.ts +79 -0
  41. package/lib/esm/utils/serialization.js +90 -0
  42. package/lib/esm/utils/strings.d.ts +25 -0
  43. package/lib/esm/utils/strings.js +33 -0
  44. package/lib/esm/validation/Validation.d.ts +51 -0
  45. package/lib/esm/validation/Validation.js +73 -0
  46. package/lib/esm/validation/Validators/DateValidator.d.ts +28 -0
  47. package/lib/esm/validation/Validators/DateValidator.js +56 -0
  48. package/lib/esm/validation/Validators/EmailValidator.d.ts +28 -0
  49. package/lib/esm/validation/Validators/EmailValidator.js +52 -0
  50. package/lib/esm/validation/Validators/ListValidator.d.ts +28 -0
  51. package/lib/esm/validation/Validators/ListValidator.js +69 -0
  52. package/lib/esm/validation/Validators/MaxLengthValidator.d.ts +29 -0
  53. package/lib/esm/validation/Validators/MaxLengthValidator.js +54 -0
  54. package/lib/esm/validation/Validators/MaxValidator.d.ts +28 -0
  55. package/lib/esm/validation/Validators/MaxValidator.js +59 -0
  56. package/lib/esm/validation/Validators/MinLengthValidator.d.ts +29 -0
  57. package/lib/esm/validation/Validators/MinLengthValidator.js +54 -0
  58. package/lib/esm/validation/Validators/MinValidator.d.ts +28 -0
  59. package/lib/esm/validation/Validators/MinValidator.js +59 -0
  60. package/lib/esm/validation/Validators/PasswordValidator.d.ts +28 -0
  61. package/lib/esm/validation/Validators/PasswordValidator.js +52 -0
  62. package/lib/esm/validation/Validators/PatternValidator.d.ts +37 -0
  63. package/lib/esm/validation/Validators/PatternValidator.js +72 -0
  64. package/lib/esm/validation/Validators/RequiredValidator.d.ts +28 -0
  65. package/lib/esm/validation/Validators/RequiredValidator.js +59 -0
  66. package/lib/esm/validation/Validators/StepValidator.d.ts +29 -0
  67. package/lib/esm/validation/Validators/StepValidator.js +54 -0
  68. package/lib/esm/validation/Validators/TypeValidator.d.ts +25 -0
  69. package/lib/esm/validation/Validators/TypeValidator.js +62 -0
  70. package/lib/esm/validation/Validators/URLValidator.d.ts +27 -0
  71. package/lib/esm/validation/Validators/URLValidator.js +51 -0
  72. package/lib/esm/validation/Validators/Validator.d.ts +41 -0
  73. package/lib/esm/validation/Validators/Validator.js +49 -0
  74. package/lib/esm/validation/Validators/ValidatorRegistry.d.ts +47 -0
  75. package/lib/esm/validation/Validators/ValidatorRegistry.js +82 -0
  76. package/lib/esm/validation/Validators/constants.d.ts +96 -0
  77. package/lib/esm/validation/Validators/constants.js +136 -0
  78. package/lib/esm/validation/Validators/decorators.d.ts +12 -0
  79. package/lib/esm/validation/Validators/decorators.js +27 -0
  80. package/lib/esm/validation/Validators/index.d.ts +52 -0
  81. package/lib/esm/validation/Validators/index.js +54 -0
  82. package/lib/esm/validation/Validators/types.d.ts +88 -0
  83. package/lib/esm/validation/Validators/types.js +3 -0
  84. package/lib/esm/validation/decorators.d.ts +178 -0
  85. package/lib/esm/validation/decorators.js +290 -0
  86. package/lib/esm/validation/index.d.ts +4 -0
  87. package/lib/esm/validation/index.js +6 -0
  88. package/lib/esm/validation/types.d.ts +46 -0
  89. package/lib/esm/validation/types.js +3 -0
  90. package/lib/index.cjs +61 -0
  91. package/lib/index.d.ts +42 -0
  92. package/lib/model/Model.cjs +302 -0
  93. package/lib/model/Model.d.ts +138 -0
  94. package/lib/model/ModelErrorDefinition.cjs +58 -0
  95. package/lib/model/ModelErrorDefinition.d.ts +22 -0
  96. package/lib/model/Registry.cjs +80 -0
  97. package/lib/model/Registry.d.ts +59 -0
  98. package/lib/model/constants.cjs +74 -0
  99. package/lib/model/constants.d.ts +56 -0
  100. package/lib/model/construction.cjs +70 -0
  101. package/lib/model/construction.d.ts +29 -0
  102. package/lib/model/decorators.cjs +69 -0
  103. package/lib/model/decorators.d.ts +25 -0
  104. package/lib/model/index.cjs +27 -0
  105. package/lib/model/index.d.ts +9 -0
  106. package/lib/model/types.cjs +4 -0
  107. package/lib/model/types.d.ts +79 -0
  108. package/lib/model/utils.cjs +31 -0
  109. package/lib/model/utils.d.ts +11 -0
  110. package/lib/model/validation.cjs +140 -0
  111. package/lib/model/validation.d.ts +14 -0
  112. package/lib/utils/constants.cjs +32 -0
  113. package/lib/utils/constants.d.ts +26 -0
  114. package/lib/utils/dates.cjs +253 -0
  115. package/lib/utils/dates.d.ts +76 -0
  116. package/lib/utils/decorators.cjs +24 -0
  117. package/lib/utils/decorators.d.ts +2 -0
  118. package/lib/utils/hashing.cjs +108 -0
  119. package/lib/utils/hashing.d.ts +52 -0
  120. package/lib/utils/index.cjs +25 -0
  121. package/lib/utils/index.d.ts +7 -0
  122. package/lib/utils/registry.cjs +4 -0
  123. package/lib/utils/registry.d.ts +68 -0
  124. package/lib/utils/serialization.cjs +95 -0
  125. package/lib/utils/serialization.d.ts +79 -0
  126. package/lib/utils/strings.cjs +37 -0
  127. package/lib/utils/strings.d.ts +25 -0
  128. package/lib/validation/Validation.cjs +77 -0
  129. package/lib/validation/Validation.d.ts +51 -0
  130. package/lib/validation/Validators/DateValidator.cjs +59 -0
  131. package/lib/validation/Validators/DateValidator.d.ts +28 -0
  132. package/lib/validation/Validators/EmailValidator.cjs +55 -0
  133. package/lib/validation/Validators/EmailValidator.d.ts +28 -0
  134. package/lib/validation/Validators/ListValidator.cjs +72 -0
  135. package/lib/validation/Validators/ListValidator.d.ts +28 -0
  136. package/lib/validation/Validators/MaxLengthValidator.cjs +57 -0
  137. package/lib/validation/Validators/MaxLengthValidator.d.ts +29 -0
  138. package/lib/validation/Validators/MaxValidator.cjs +62 -0
  139. package/lib/validation/Validators/MaxValidator.d.ts +28 -0
  140. package/lib/validation/Validators/MinLengthValidator.cjs +57 -0
  141. package/lib/validation/Validators/MinLengthValidator.d.ts +29 -0
  142. package/lib/validation/Validators/MinValidator.cjs +62 -0
  143. package/lib/validation/Validators/MinValidator.d.ts +28 -0
  144. package/lib/validation/Validators/PasswordValidator.cjs +55 -0
  145. package/lib/validation/Validators/PasswordValidator.d.ts +28 -0
  146. package/lib/validation/Validators/PatternValidator.cjs +75 -0
  147. package/lib/validation/Validators/PatternValidator.d.ts +37 -0
  148. package/lib/validation/Validators/RequiredValidator.cjs +62 -0
  149. package/lib/validation/Validators/RequiredValidator.d.ts +28 -0
  150. package/lib/validation/Validators/StepValidator.cjs +57 -0
  151. package/lib/validation/Validators/StepValidator.d.ts +29 -0
  152. package/lib/validation/Validators/TypeValidator.cjs +65 -0
  153. package/lib/validation/Validators/TypeValidator.d.ts +25 -0
  154. package/lib/validation/Validators/URLValidator.cjs +54 -0
  155. package/lib/validation/Validators/URLValidator.d.ts +27 -0
  156. package/lib/validation/Validators/Validator.cjs +53 -0
  157. package/lib/validation/Validators/Validator.d.ts +41 -0
  158. package/lib/validation/Validators/ValidatorRegistry.cjs +87 -0
  159. package/lib/validation/Validators/ValidatorRegistry.d.ts +47 -0
  160. package/lib/validation/Validators/constants.cjs +139 -0
  161. package/lib/validation/Validators/constants.d.ts +96 -0
  162. package/lib/validation/Validators/decorators.cjs +30 -0
  163. package/lib/validation/Validators/decorators.d.ts +12 -0
  164. package/lib/validation/Validators/index.cjs +71 -0
  165. package/lib/validation/Validators/index.d.ts +52 -0
  166. package/lib/validation/Validators/types.cjs +4 -0
  167. package/lib/validation/Validators/types.d.ts +88 -0
  168. package/lib/validation/decorators.cjs +306 -0
  169. package/lib/validation/decorators.d.ts +178 -0
  170. package/lib/validation/index.cjs +22 -0
  171. package/lib/validation/index.d.ts +4 -0
  172. package/lib/validation/types.cjs +4 -0
  173. package/lib/validation/types.d.ts +46 -0
  174. package/package.json +18 -13
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_PATTERNS = exports.DEFAULT_ERROR_MESSAGES = exports.DAYS_OF_WEEK_NAMES = exports.MONTH_NAMES = exports.ValidationKeys = void 0;
4
+ const constants_1 = require("../../utils/constants/index.cjs");
5
+ /**
6
+ * @summary The keys used for validation
7
+ *
8
+ * @property {string} REFLECT prefixes others
9
+ * @property {string} REQUIRED sets as required
10
+ * @property {string} MIN defines min value
11
+ * @property {string} MAX defines max value
12
+ * @property {string} STEP defines step
13
+ * @property {string} MIN_LENGTH defines min length
14
+ * @property {string} MAX_LENGTH defines max length
15
+ * @property {string} PATTERN defines pattern
16
+ * @property {string} EMAIL defines email
17
+ * @property {string} URL defines url
18
+ * @property {string} DATE defines date
19
+ * @property {string} TYPE defines type
20
+ * @property {string} PASSWORD defines password
21
+ * @property {string} LIST defines list
22
+ *
23
+ * @constant ValidationKeys
24
+ * @memberOf module:decorator-validation.Validation
25
+ * @category Validation
26
+ */
27
+ exports.ValidationKeys = {
28
+ REFLECT: `${constants_1.ModelKeys.REFLECT}validation.`,
29
+ VALIDATOR: "validator",
30
+ REQUIRED: "required",
31
+ MIN: "min",
32
+ MAX: "max",
33
+ STEP: "step",
34
+ MIN_LENGTH: "minlength",
35
+ MAX_LENGTH: "maxlength",
36
+ PATTERN: "pattern",
37
+ EMAIL: "email",
38
+ URL: "url",
39
+ DATE: "date",
40
+ TYPE: "type",
41
+ PASSWORD: "password",
42
+ LIST: "list",
43
+ };
44
+ /**
45
+ * @summary list of month names
46
+ * @description Stores month names. Can be changed for localization purposes
47
+ *
48
+ * @constant MONTH_NAMES
49
+ * @memberOf module:decorator-validation.Validation
50
+ * @category Validation
51
+ */
52
+ exports.MONTH_NAMES = [
53
+ "January",
54
+ "February",
55
+ "March",
56
+ "April",
57
+ "May",
58
+ "June",
59
+ "July",
60
+ "August",
61
+ "September",
62
+ "October",
63
+ "November",
64
+ "December",
65
+ ];
66
+ /**
67
+ * @summary list of names of days of the week
68
+ * @description Stores names for days of the week. Can be changed for localization purposes
69
+ *
70
+ * @constant DAYS_OF_WEEK_NAMES
71
+ * @memberOf module:decorator-validation.Validation
72
+ * @category Validation
73
+ */
74
+ exports.DAYS_OF_WEEK_NAMES = [
75
+ "Sunday",
76
+ "Monday",
77
+ "Tuesday",
78
+ "Wednesday",
79
+ "Thursday",
80
+ "Friday",
81
+ "Saturday",
82
+ ];
83
+ /**
84
+ * @summary Defines the default error messages
85
+ *
86
+ * @property {string} REQUIRED default error message
87
+ * @property {string} MIN default error message
88
+ * @property {string} MAX default error message
89
+ * @property {string} MIN_LENGTH default error message
90
+ * @property {string} MAX_LENGTH default error message
91
+ * @property {string} PATTERN default error message
92
+ * @property {string} EMAIL default error message
93
+ * @property {string} URL default error message
94
+ * @property {string} TYPE default error message
95
+ * @property {string} STEP default error message
96
+ * @property {string} DATE default error message
97
+ * @property {string} DEFAULT default error message
98
+ * @property {string} PASSWORD default error message
99
+ * @property {string} LIST default error message
100
+ * @property {string} LIST_INSIDE default error message
101
+ * @property {string} MODEL_NOT_FOUND default error message
102
+ *
103
+ * @constant DEFAULT_ERROR_MESSAGES
104
+ * @memberOf module:decorator-validation.Validation
105
+ * @category Validation
106
+ */
107
+ exports.DEFAULT_ERROR_MESSAGES = {
108
+ REQUIRED: "This field is required",
109
+ MIN: "The minimum value is {0}",
110
+ MAX: "The maximum value is {0}",
111
+ MIN_LENGTH: "The minimum length is {0}",
112
+ MAX_LENGTH: "The maximum length is {0}",
113
+ PATTERN: "The value does not match the pattern",
114
+ EMAIL: "The value is not a valid email",
115
+ URL: "The value is not a valid URL",
116
+ TYPE: "Invalid type. Expected {0}, received {1}",
117
+ STEP: "Invalid value. Not a step of {0}",
118
+ DATE: "Invalid value. not a valid Date",
119
+ DEFAULT: "There is an Error",
120
+ PASSWORD: "Must be at least 8 characters and contain one of number, lower and upper case letters, and special character (@$!%*?&_-.,)",
121
+ LIST: "Invalid list of {0}",
122
+ MODEL_NOT_FOUND: "No model registered under {0}",
123
+ };
124
+ /**
125
+ * @summary Defines the various default regexp patterns used
126
+ *
127
+ * @enum DEFAULT_PATTERNS
128
+ * @memberOf module:decorator-validation.Validation
129
+ * @category Validation
130
+ */
131
+ exports.DEFAULT_PATTERNS = {
132
+ EMAIL: /[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?/,
133
+ URL: /^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?))(?::\d{2,5})?(?:[/?#]\S*)?$/i,
134
+ PASSWORD: {
135
+ CHAR8_ONE_OF_EACH: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&_\-.,])[A-Za-z\d@$!%*?&_\-.,]{8,}$/g,
136
+ },
137
+ };
138
+
139
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUFrRDtBQUVsRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBQ1UsUUFBQSxjQUFjLEdBQUc7SUFDNUIsT0FBTyxFQUFFLEdBQUcscUJBQVMsQ0FBQyxPQUFPLGFBQWE7SUFDMUMsU0FBUyxFQUFFLFdBQVc7SUFDdEIsUUFBUSxFQUFFLFVBQVU7SUFDcEIsR0FBRyxFQUFFLEtBQUs7SUFDVixHQUFHLEVBQUUsS0FBSztJQUNWLElBQUksRUFBRSxNQUFNO0lBQ1osVUFBVSxFQUFFLFdBQVc7SUFDdkIsVUFBVSxFQUFFLFdBQVc7SUFDdkIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsS0FBSyxFQUFFLE9BQU87SUFDZCxHQUFHLEVBQUUsS0FBSztJQUNWLElBQUksRUFBRSxNQUFNO0lBQ1osSUFBSSxFQUFFLE1BQU07SUFDWixRQUFRLEVBQUUsVUFBVTtJQUNwQixJQUFJLEVBQUUsTUFBTTtDQUNiLENBQUM7QUFFRjs7Ozs7OztHQU9HO0FBQ1UsUUFBQSxXQUFXLEdBQUc7SUFDekIsU0FBUztJQUNULFVBQVU7SUFDVixPQUFPO0lBQ1AsT0FBTztJQUNQLEtBQUs7SUFDTCxNQUFNO0lBQ04sTUFBTTtJQUNOLFFBQVE7SUFDUixXQUFXO0lBQ1gsU0FBUztJQUNULFVBQVU7SUFDVixVQUFVO0NBQ1gsQ0FBQztBQUVGOzs7Ozs7O0dBT0c7QUFDVSxRQUFBLGtCQUFrQixHQUFHO0lBQ2hDLFFBQVE7SUFDUixRQUFRO0lBQ1IsU0FBUztJQUNULFdBQVc7SUFDWCxVQUFVO0lBQ1YsUUFBUTtJQUNSLFVBQVU7Q0FDWCxDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJHO0FBQ1UsUUFBQSxzQkFBc0IsR0FBMkI7SUFDNUQsUUFBUSxFQUFFLHdCQUF3QjtJQUNsQyxHQUFHLEVBQUUsMEJBQTBCO0lBQy9CLEdBQUcsRUFBRSwwQkFBMEI7SUFDL0IsVUFBVSxFQUFFLDJCQUEyQjtJQUN2QyxVQUFVLEVBQUUsMkJBQTJCO0lBQ3ZDLE9BQU8sRUFBRSxzQ0FBc0M7SUFDL0MsS0FBSyxFQUFFLGdDQUFnQztJQUN2QyxHQUFHLEVBQUUsOEJBQThCO0lBQ25DLElBQUksRUFBRSwwQ0FBMEM7SUFDaEQsSUFBSSxFQUFFLGtDQUFrQztJQUN4QyxJQUFJLEVBQUUsaUNBQWlDO0lBQ3ZDLE9BQU8sRUFBRSxtQkFBbUI7SUFDNUIsUUFBUSxFQUNOLDRIQUE0SDtJQUM5SCxJQUFJLEVBQUUscUJBQXFCO0lBQzNCLGVBQWUsRUFBRSwrQkFBK0I7Q0FDakQsQ0FBQztBQUVGOzs7Ozs7R0FNRztBQUNVLFFBQUEsZ0JBQWdCLEdBQUc7SUFDOUIsS0FBSyxFQUNILDRKQUE0SjtJQUM5SixHQUFHLEVBQUUseWFBQXlhO0lBQzlhLFFBQVEsRUFBRTtRQUNSLGlCQUFpQixFQUNmLGlGQUFpRjtLQUNwRjtDQUNGLENBQUMiLCJmaWxlIjoidmFsaWRhdGlvbi9WYWxpZGF0b3JzL2NvbnN0YW50cy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZGVsS2V5cyB9IGZyb20gXCIuLi8uLi91dGlscy9jb25zdGFudHNcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBUaGUga2V5cyB1c2VkIGZvciB2YWxpZGF0aW9uXG4gKlxuICogQHByb3BlcnR5IHtzdHJpbmd9IFJFRkxFQ1QgcHJlZml4ZXMgb3RoZXJzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gUkVRVUlSRUQgc2V0cyBhcyByZXF1aXJlZFxuICogQHByb3BlcnR5IHtzdHJpbmd9IE1JTiBkZWZpbmVzIG1pbiB2YWx1ZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IE1BWCBkZWZpbmVzIG1heCB2YWx1ZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFNURVAgZGVmaW5lcyBzdGVwXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTUlOX0xFTkdUSCBkZWZpbmVzIG1pbiBsZW5ndGhcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBNQVhfTEVOR1RIIGRlZmluZXMgbWF4IGxlbmd0aFxuICogQHByb3BlcnR5IHtzdHJpbmd9IFBBVFRFUk4gZGVmaW5lcyBwYXR0ZXJuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gRU1BSUwgZGVmaW5lcyBlbWFpbFxuICogQHByb3BlcnR5IHtzdHJpbmd9IFVSTCBkZWZpbmVzIHVybFxuICogQHByb3BlcnR5IHtzdHJpbmd9IERBVEUgZGVmaW5lcyBkYXRlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gVFlQRSBkZWZpbmVzIHR5cGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBQQVNTV09SRCBkZWZpbmVzIHBhc3N3b3JkXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTElTVCBkZWZpbmVzIGxpc3RcbiAqXG4gKiBAY29uc3RhbnQgVmFsaWRhdGlvbktleXNcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdG9yLXZhbGlkYXRpb24uVmFsaWRhdGlvblxuICogQGNhdGVnb3J5IFZhbGlkYXRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IFZhbGlkYXRpb25LZXlzID0ge1xuICBSRUZMRUNUOiBgJHtNb2RlbEtleXMuUkVGTEVDVH12YWxpZGF0aW9uLmAsXG4gIFZBTElEQVRPUjogXCJ2YWxpZGF0b3JcIixcbiAgUkVRVUlSRUQ6IFwicmVxdWlyZWRcIixcbiAgTUlOOiBcIm1pblwiLFxuICBNQVg6IFwibWF4XCIsXG4gIFNURVA6IFwic3RlcFwiLFxuICBNSU5fTEVOR1RIOiBcIm1pbmxlbmd0aFwiLFxuICBNQVhfTEVOR1RIOiBcIm1heGxlbmd0aFwiLFxuICBQQVRURVJOOiBcInBhdHRlcm5cIixcbiAgRU1BSUw6IFwiZW1haWxcIixcbiAgVVJMOiBcInVybFwiLFxuICBEQVRFOiBcImRhdGVcIixcbiAgVFlQRTogXCJ0eXBlXCIsXG4gIFBBU1NXT1JEOiBcInBhc3N3b3JkXCIsXG4gIExJU1Q6IFwibGlzdFwiLFxufTtcblxuLyoqXG4gKiBAc3VtbWFyeSBsaXN0IG9mIG1vbnRoIG5hbWVzXG4gKiBAZGVzY3JpcHRpb24gU3RvcmVzIG1vbnRoIG5hbWVzLiBDYW4gYmUgY2hhbmdlZCBmb3IgbG9jYWxpemF0aW9uIHB1cnBvc2VzXG4gKlxuICogQGNvbnN0YW50IE1PTlRIX05BTUVTXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRlY29yYXRvci12YWxpZGF0aW9uLlZhbGlkYXRpb25cbiAqIEBjYXRlZ29yeSBWYWxpZGF0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBNT05USF9OQU1FUyA9IFtcbiAgXCJKYW51YXJ5XCIsXG4gIFwiRmVicnVhcnlcIixcbiAgXCJNYXJjaFwiLFxuICBcIkFwcmlsXCIsXG4gIFwiTWF5XCIsXG4gIFwiSnVuZVwiLFxuICBcIkp1bHlcIixcbiAgXCJBdWd1c3RcIixcbiAgXCJTZXB0ZW1iZXJcIixcbiAgXCJPY3RvYmVyXCIsXG4gIFwiTm92ZW1iZXJcIixcbiAgXCJEZWNlbWJlclwiLFxuXTtcblxuLyoqXG4gKiBAc3VtbWFyeSBsaXN0IG9mIG5hbWVzIG9mIGRheXMgb2YgdGhlIHdlZWtcbiAqIEBkZXNjcmlwdGlvbiBTdG9yZXMgbmFtZXMgZm9yIGRheXMgb2YgdGhlIHdlZWsuIENhbiBiZSBjaGFuZ2VkIGZvciBsb2NhbGl6YXRpb24gcHVycG9zZXNcbiAqXG4gKiBAY29uc3RhbnQgREFZU19PRl9XRUVLX05BTUVTXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRlY29yYXRvci12YWxpZGF0aW9uLlZhbGlkYXRpb25cbiAqIEBjYXRlZ29yeSBWYWxpZGF0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBEQVlTX09GX1dFRUtfTkFNRVMgPSBbXG4gIFwiU3VuZGF5XCIsXG4gIFwiTW9uZGF5XCIsXG4gIFwiVHVlc2RheVwiLFxuICBcIldlZG5lc2RheVwiLFxuICBcIlRodXJzZGF5XCIsXG4gIFwiRnJpZGF5XCIsXG4gIFwiU2F0dXJkYXlcIixcbl07XG5cbi8qKlxuICogQHN1bW1hcnkgRGVmaW5lcyB0aGUgZGVmYXVsdCBlcnJvciBtZXNzYWdlc1xuICpcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBSRVFVSVJFRCBkZWZhdWx0IGVycm9yIG1lc3NhZ2VcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBNSU4gZGVmYXVsdCBlcnJvciBtZXNzYWdlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTUFYIGRlZmF1bHQgZXJyb3IgbWVzc2FnZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IE1JTl9MRU5HVEggZGVmYXVsdCBlcnJvciBtZXNzYWdlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTUFYX0xFTkdUSCBkZWZhdWx0IGVycm9yIG1lc3NhZ2VcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBQQVRURVJOIGRlZmF1bHQgZXJyb3IgbWVzc2FnZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IEVNQUlMIGRlZmF1bHQgZXJyb3IgbWVzc2FnZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFVSTCBkZWZhdWx0IGVycm9yIG1lc3NhZ2VcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBUWVBFIGRlZmF1bHQgZXJyb3IgbWVzc2FnZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFNURVAgZGVmYXVsdCBlcnJvciBtZXNzYWdlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gREFURSBkZWZhdWx0IGVycm9yIG1lc3NhZ2VcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBERUZBVUxUIGRlZmF1bHQgZXJyb3IgbWVzc2FnZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFBBU1NXT1JEIGRlZmF1bHQgZXJyb3IgbWVzc2FnZVxuICogQHByb3BlcnR5IHtzdHJpbmd9IExJU1QgZGVmYXVsdCBlcnJvciBtZXNzYWdlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTElTVF9JTlNJREUgZGVmYXVsdCBlcnJvciBtZXNzYWdlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTU9ERUxfTk9UX0ZPVU5EIGRlZmF1bHQgZXJyb3IgbWVzc2FnZVxuICpcbiAqIEBjb25zdGFudCBERUZBVUxUX0VSUk9SX01FU1NBR0VTXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRlY29yYXRvci12YWxpZGF0aW9uLlZhbGlkYXRpb25cbiAqIEBjYXRlZ29yeSBWYWxpZGF0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0VSUk9SX01FU1NBR0VTOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBSRVFVSVJFRDogXCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkXCIsXG4gIE1JTjogXCJUaGUgbWluaW11bSB2YWx1ZSBpcyB7MH1cIixcbiAgTUFYOiBcIlRoZSBtYXhpbXVtIHZhbHVlIGlzIHswfVwiLFxuICBNSU5fTEVOR1RIOiBcIlRoZSBtaW5pbXVtIGxlbmd0aCBpcyB7MH1cIixcbiAgTUFYX0xFTkdUSDogXCJUaGUgbWF4aW11bSBsZW5ndGggaXMgezB9XCIsXG4gIFBBVFRFUk46IFwiVGhlIHZhbHVlIGRvZXMgbm90IG1hdGNoIHRoZSBwYXR0ZXJuXCIsXG4gIEVNQUlMOiBcIlRoZSB2YWx1ZSBpcyBub3QgYSB2YWxpZCBlbWFpbFwiLFxuICBVUkw6IFwiVGhlIHZhbHVlIGlzIG5vdCBhIHZhbGlkIFVSTFwiLFxuICBUWVBFOiBcIkludmFsaWQgdHlwZS4gRXhwZWN0ZWQgezB9LCByZWNlaXZlZCB7MX1cIixcbiAgU1RFUDogXCJJbnZhbGlkIHZhbHVlLiBOb3QgYSBzdGVwIG9mIHswfVwiLFxuICBEQVRFOiBcIkludmFsaWQgdmFsdWUuIG5vdCBhIHZhbGlkIERhdGVcIixcbiAgREVGQVVMVDogXCJUaGVyZSBpcyBhbiBFcnJvclwiLFxuICBQQVNTV09SRDpcbiAgICBcIk11c3QgYmUgYXQgbGVhc3QgOCBjaGFyYWN0ZXJzIGFuZCBjb250YWluIG9uZSBvZiBudW1iZXIsIGxvd2VyIGFuZCB1cHBlciBjYXNlIGxldHRlcnMsIGFuZCBzcGVjaWFsIGNoYXJhY3RlciAoQCQhJSo/Jl8tLiwpXCIsXG4gIExJU1Q6IFwiSW52YWxpZCBsaXN0IG9mIHswfVwiLFxuICBNT0RFTF9OT1RfRk9VTkQ6IFwiTm8gbW9kZWwgcmVnaXN0ZXJlZCB1bmRlciB7MH1cIixcbn07XG5cbi8qKlxuICogQHN1bW1hcnkgRGVmaW5lcyB0aGUgdmFyaW91cyBkZWZhdWx0IHJlZ2V4cCBwYXR0ZXJucyB1c2VkXG4gKlxuICogQGVudW0gREVGQVVMVF9QQVRURVJOU1xuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvbi5WYWxpZGF0aW9uXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdGlvblxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9QQVRURVJOUyA9IHtcbiAgRU1BSUw6XG4gICAgL1thLXpBLVowLTkhIyQlJicqKy89P15fYHt8fX4tXSsoPzpcXC5bYS16QS1aMC05ISMkJSYnKisvPT9eX2B7fH1+LV0rKSpAKD86W2EtekEtWjAtOV0oPzpbYS16MC05LV0qW2EtekEtWjAtOV0pP1xcLikrW2EtekEtWjAtOV0oPzpbYS16QS1aMC05LV0qW2EtekEtWjAtOV0pPy8sXG4gIFVSTDogL14oPzooPzooPzpodHRwcz98ZnRwKTopP1xcL1xcLykoPzpcXFMrKD86OlxcUyopP0ApPyg/Oig/ISg/OjEwfDEyNykoPzpcXC5cXGR7MSwzfSl7M30pKD8hKD86MTY5XFwuMjU0fDE5MlxcLjE2OCkoPzpcXC5cXGR7MSwzfSl7Mn0pKD8hMTcyXFwuKD86MVs2LTldfDJcXGR8M1swLTFdKSg/OlxcLlxcZHsxLDN9KXsyfSkoPzpbMS05XVxcZD98MVxcZFxcZHwyWzAxXVxcZHwyMlswLTNdKSg/OlxcLig/OjE/XFxkezEsMn18MlswLTRdXFxkfDI1WzAtNV0pKXsyfSg/OlxcLig/OlsxLTldXFxkP3wxXFxkXFxkfDJbMC00XVxcZHwyNVswLTRdKSl8KD86KD86W2EtejAtOVxcdTAwYTEtXFx1ZmZmZl1bYS16MC05XFx1MDBhMS1cXHVmZmZmXy1dezAsNjJ9KT9bYS16MC05XFx1MDBhMS1cXHVmZmZmXVxcLikrKD86W2EtelxcdTAwYTEtXFx1ZmZmZl17Mix9XFwuPykpKD86OlxcZHsyLDV9KT8oPzpbLz8jXVxcUyopPyQvaSxcbiAgUEFTU1dPUkQ6IHtcbiAgICBDSEFSOF9PTkVfT0ZfRUFDSDpcbiAgICAgIC9eKD89LipbYS16XSkoPz0uKltBLVpdKSg/PS4qXFxkKSg/PS4qW0AkISUqPyZfXFwtLixdKVtBLVphLXpcXGRAJCElKj8mX1xcLS4sXXs4LH0kL2csXG4gIH0sXG59O1xuIl19
@@ -0,0 +1,96 @@
1
+ /**
2
+ * @summary The keys used for validation
3
+ *
4
+ * @property {string} REFLECT prefixes others
5
+ * @property {string} REQUIRED sets as required
6
+ * @property {string} MIN defines min value
7
+ * @property {string} MAX defines max value
8
+ * @property {string} STEP defines step
9
+ * @property {string} MIN_LENGTH defines min length
10
+ * @property {string} MAX_LENGTH defines max length
11
+ * @property {string} PATTERN defines pattern
12
+ * @property {string} EMAIL defines email
13
+ * @property {string} URL defines url
14
+ * @property {string} DATE defines date
15
+ * @property {string} TYPE defines type
16
+ * @property {string} PASSWORD defines password
17
+ * @property {string} LIST defines list
18
+ *
19
+ * @constant ValidationKeys
20
+ * @memberOf module:decorator-validation.Validation
21
+ * @category Validation
22
+ */
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;
39
+ };
40
+ /**
41
+ * @summary list of month names
42
+ * @description Stores month names. Can be changed for localization purposes
43
+ *
44
+ * @constant MONTH_NAMES
45
+ * @memberOf module:decorator-validation.Validation
46
+ * @category Validation
47
+ */
48
+ export declare const MONTH_NAMES: string[];
49
+ /**
50
+ * @summary list of names of days of the week
51
+ * @description Stores names for days of the week. Can be changed for localization purposes
52
+ *
53
+ * @constant DAYS_OF_WEEK_NAMES
54
+ * @memberOf module:decorator-validation.Validation
55
+ * @category Validation
56
+ */
57
+ export declare const DAYS_OF_WEEK_NAMES: string[];
58
+ /**
59
+ * @summary Defines the default error messages
60
+ *
61
+ * @property {string} REQUIRED default error message
62
+ * @property {string} MIN default error message
63
+ * @property {string} MAX default error message
64
+ * @property {string} MIN_LENGTH default error message
65
+ * @property {string} MAX_LENGTH default error message
66
+ * @property {string} PATTERN default error message
67
+ * @property {string} EMAIL default error message
68
+ * @property {string} URL default error message
69
+ * @property {string} TYPE default error message
70
+ * @property {string} STEP default error message
71
+ * @property {string} DATE default error message
72
+ * @property {string} DEFAULT default error message
73
+ * @property {string} PASSWORD default error message
74
+ * @property {string} LIST default error message
75
+ * @property {string} LIST_INSIDE default error message
76
+ * @property {string} MODEL_NOT_FOUND default error message
77
+ *
78
+ * @constant DEFAULT_ERROR_MESSAGES
79
+ * @memberOf module:decorator-validation.Validation
80
+ * @category Validation
81
+ */
82
+ export declare const DEFAULT_ERROR_MESSAGES: Record<string, string>;
83
+ /**
84
+ * @summary Defines the various default regexp patterns used
85
+ *
86
+ * @enum DEFAULT_PATTERNS
87
+ * @memberOf module:decorator-validation.Validation
88
+ * @category Validation
89
+ */
90
+ export declare const DEFAULT_PATTERNS: {
91
+ EMAIL: RegExp;
92
+ URL: RegExp;
93
+ PASSWORD: {
94
+ CHAR8_ONE_OF_EACH: RegExp;
95
+ };
96
+ };
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validator = validator;
4
+ const Validation_1 = require("../Validation/index.cjs");
5
+ const constants_1 = require("./constants/index.cjs");
6
+ const reflection_1 = require("@decaf-ts/reflection");
7
+ /**
8
+ * @summary Marks the class as a validator for a certain key.
9
+ * @description Registers the class in the {@link Validation} with the provided key
10
+ *
11
+ * @param {string} keys the validation key
12
+ *
13
+ * @function validator
14
+ *
15
+ * @category Decorators
16
+ */
17
+ function validator(...keys) {
18
+ return (0, reflection_1.apply)(((original) => {
19
+ keys.forEach((k) => {
20
+ Validation_1.Validation.register({
21
+ validator: original,
22
+ validationKey: k,
23
+ save: true,
24
+ });
25
+ });
26
+ return original;
27
+ }), (0, reflection_1.metadata)(Validation_1.Validation.key(constants_1.ValidationKeys.VALIDATOR), keys));
28
+ }
29
+
30
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvZGVjb3JhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlCQSw4QkFjQztBQTlCRCw4Q0FBMkM7QUFHM0MsMkNBQTZDO0FBQzdDLHFEQUF1RDtBQUV2RDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixTQUFTLENBQXNCLEdBQUcsSUFBYztJQUM5RCxPQUFPLElBQUEsa0JBQUssRUFDVixDQUFDLENBQUMsUUFBd0IsRUFBRSxFQUFFO1FBQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRTtZQUN6Qix1QkFBVSxDQUFDLFFBQVEsQ0FBQztnQkFDbEIsU0FBUyxFQUFFLFFBQVE7Z0JBQ25CLGFBQWEsRUFBRSxDQUFDO2dCQUNoQixJQUFJLEVBQUUsSUFBSTthQUNZLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUMsQ0FBbUIsRUFDcEIsSUFBQSxxQkFBUSxFQUFDLHVCQUFVLENBQUMsR0FBRyxDQUFDLDBCQUFjLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQ3pELENBQUM7QUFDSixDQUFDIiwiZmlsZSI6InZhbGlkYXRpb24vVmFsaWRhdG9ycy9kZWNvcmF0b3JzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSBcIi4vVmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSBcIi4uL1ZhbGlkYXRpb25cIjtcbmltcG9ydCB7IFZhbGlkYXRvckRlZmluaXRpb24gfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IgfSBmcm9tIFwiLi4vLi4vbW9kZWwvdHlwZXNcIjtcbmltcG9ydCB7IFZhbGlkYXRpb25LZXlzIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBhcHBseSwgbWV0YWRhdGEgfSBmcm9tIFwiQGRlY2FmLXRzL3JlZmxlY3Rpb25cIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBNYXJrcyB0aGUgY2xhc3MgYXMgYSB2YWxpZGF0b3IgZm9yIGEgY2VydGFpbiBrZXkuXG4gKiBAZGVzY3JpcHRpb24gUmVnaXN0ZXJzIHRoZSBjbGFzcyBpbiB0aGUge0BsaW5rIFZhbGlkYXRpb259IHdpdGggdGhlIHByb3ZpZGVkIGtleVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXlzIHRoZSB2YWxpZGF0aW9uIGtleVxuICpcbiAqIEBmdW5jdGlvbiB2YWxpZGF0b3JcbiAqXG4gKiBAY2F0ZWdvcnkgRGVjb3JhdG9yc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdG9yPFQgZXh0ZW5kcyBWYWxpZGF0b3I+KC4uLmtleXM6IHN0cmluZ1tdKSB7XG4gIHJldHVybiBhcHBseShcbiAgICAoKG9yaWdpbmFsOiBDb25zdHJ1Y3RvcjxUPikgPT4ge1xuICAgICAga2V5cy5mb3JFYWNoKChrOiBzdHJpbmcpID0+IHtcbiAgICAgICAgVmFsaWRhdGlvbi5yZWdpc3Rlcih7XG4gICAgICAgICAgdmFsaWRhdG9yOiBvcmlnaW5hbCxcbiAgICAgICAgICB2YWxpZGF0aW9uS2V5OiBrLFxuICAgICAgICAgIHNhdmU6IHRydWUsXG4gICAgICAgIH0gYXMgVmFsaWRhdG9yRGVmaW5pdGlvbik7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBvcmlnaW5hbDtcbiAgICB9KSBhcyBDbGFzc0RlY29yYXRvcixcbiAgICBtZXRhZGF0YShWYWxpZGF0aW9uLmtleShWYWxpZGF0aW9uS2V5cy5WQUxJREFUT1IpLCBrZXlzKVxuICApO1xufVxuIl19
@@ -0,0 +1,12 @@
1
+ import { Validator } from "./Validator";
2
+ /**
3
+ * @summary Marks the class as a validator for a certain key.
4
+ * @description Registers the class in the {@link Validation} with the provided key
5
+ *
6
+ * @param {string} keys the validation key
7
+ *
8
+ * @function validator
9
+ *
10
+ * @category Decorators
11
+ */
12
+ export declare function validator<T extends Validator>(...keys: string[]): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.Validators = void 0;
18
+ const DateValidator_1 = require("./DateValidator/index.cjs");
19
+ const TypeValidator_1 = require("./TypeValidator/index.cjs");
20
+ const PasswordValidator_1 = require("./PasswordValidator/index.cjs");
21
+ const StepValidator_1 = require("./StepValidator/index.cjs");
22
+ const URLValidator_1 = require("./URLValidator/index.cjs");
23
+ const PatternValidator_1 = require("./PatternValidator/index.cjs");
24
+ const MinValidator_1 = require("./MinValidator/index.cjs");
25
+ const MinLengthValidator_1 = require("./MinLengthValidator/index.cjs");
26
+ const MaxValidator_1 = require("./MaxValidator/index.cjs");
27
+ const MaxLengthValidator_1 = require("./MaxLengthValidator/index.cjs");
28
+ const RequiredValidator_1 = require("./RequiredValidator/index.cjs");
29
+ const EmailValidator_1 = require("./EmailValidator/index.cjs");
30
+ const ListValidator_1 = require("./ListValidator/index.cjs");
31
+ __exportStar(require("./constants/index.cjs"), exports);
32
+ __exportStar(require("./DateValidator/index.cjs"), exports);
33
+ __exportStar(require("./decorators/index.cjs"), exports);
34
+ __exportStar(require("./EmailValidator/index.cjs"), exports);
35
+ __exportStar(require("./ListValidator/index.cjs"), exports);
36
+ __exportStar(require("./MaxLengthValidator/index.cjs"), exports);
37
+ __exportStar(require("./MaxValidator/index.cjs"), exports);
38
+ __exportStar(require("./MinLengthValidator/index.cjs"), exports);
39
+ __exportStar(require("./MinValidator/index.cjs"), exports);
40
+ __exportStar(require("./PasswordValidator/index.cjs"), exports);
41
+ __exportStar(require("./PatternValidator/index.cjs"), exports);
42
+ __exportStar(require("./RequiredValidator/index.cjs"), exports);
43
+ __exportStar(require("./StepValidator/index.cjs"), exports);
44
+ __exportStar(require("./types/index.cjs"), exports);
45
+ __exportStar(require("./TypeValidator/index.cjs"), exports);
46
+ __exportStar(require("./URLValidator/index.cjs"), exports);
47
+ __exportStar(require("./Validator/index.cjs"), exports);
48
+ __exportStar(require("./ValidatorRegistry/index.cjs"), exports);
49
+ /**
50
+ * @summary constant holding all {@link Validator}s
51
+ * @constant Validators
52
+ * @memberOf module:decorator-validation.Validation.Validators
53
+ * @category Validation
54
+ */
55
+ exports.Validators = {
56
+ DateValidator: DateValidator_1.DateValidator,
57
+ EmailValidator: EmailValidator_1.EmailValidator,
58
+ ListValidator: ListValidator_1.ListValidator,
59
+ MaxLengthValidator: MaxLengthValidator_1.MaxLengthValidator,
60
+ MaxValidator: MaxValidator_1.MaxValidator,
61
+ MinLengthValidator: MinLengthValidator_1.MinLengthValidator,
62
+ MinValidator: MinValidator_1.MinValidator,
63
+ PasswordValidator: PasswordValidator_1.PasswordValidator,
64
+ PatternValidator: PatternValidator_1.PatternValidator,
65
+ RequiredValidator: RequiredValidator_1.RequiredValidator,
66
+ StepValidator: StepValidator_1.StepValidator,
67
+ TypeValidator: TypeValidator_1.TypeValidator,
68
+ URLValidator: URLValidator_1.URLValidator,
69
+ };
70
+
71
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtREFBZ0Q7QUFDaEQsbURBQWdEO0FBQ2hELDJEQUF3RDtBQUN4RCxtREFBZ0Q7QUFDaEQsaURBQThDO0FBQzlDLHlEQUFzRDtBQUN0RCxpREFBOEM7QUFDOUMsNkRBQTBEO0FBQzFELGlEQUE4QztBQUM5Qyw2REFBMEQ7QUFDMUQsMkRBQXdEO0FBQ3hELHFEQUFrRDtBQUNsRCxtREFBZ0Q7QUFFaEQsOENBQTRCO0FBQzVCLGtEQUFnQztBQUNoQywrQ0FBNkI7QUFDN0IsbURBQWlDO0FBQ2pDLGtEQUFnQztBQUNoQyx1REFBcUM7QUFDckMsaURBQStCO0FBQy9CLHVEQUFxQztBQUNyQyxpREFBK0I7QUFDL0Isc0RBQW9DO0FBQ3BDLHFEQUFtQztBQUNuQyxzREFBb0M7QUFDcEMsa0RBQWdDO0FBQ2hDLDBDQUF3QjtBQUN4QixrREFBZ0M7QUFDaEMsaURBQStCO0FBQy9CLDhDQUE0QjtBQUM1QixzREFBb0M7QUFDcEM7Ozs7O0dBS0c7QUFDVSxRQUFBLFVBQVUsR0FBRztJQUN4QixhQUFhLEVBQWIsNkJBQWE7SUFDYixjQUFjLEVBQWQsK0JBQWM7SUFDZCxhQUFhLEVBQWIsNkJBQWE7SUFDYixrQkFBa0IsRUFBbEIsdUNBQWtCO0lBQ2xCLFlBQVksRUFBWiwyQkFBWTtJQUNaLGtCQUFrQixFQUFsQix1Q0FBa0I7SUFDbEIsWUFBWSxFQUFaLDJCQUFZO0lBQ1osaUJBQWlCLEVBQWpCLHFDQUFpQjtJQUNqQixnQkFBZ0IsRUFBaEIsbUNBQWdCO0lBQ2hCLGlCQUFpQixFQUFqQixxQ0FBaUI7SUFDakIsYUFBYSxFQUFiLDZCQUFhO0lBQ2IsYUFBYSxFQUFiLDZCQUFhO0lBQ2IsWUFBWSxFQUFaLDJCQUFZO0NBQ2IsQ0FBQyIsImZpbGUiOiJ2YWxpZGF0aW9uL1ZhbGlkYXRvcnMvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlVmFsaWRhdG9yIH0gZnJvbSBcIi4vRGF0ZVZhbGlkYXRvclwiO1xuaW1wb3J0IHsgVHlwZVZhbGlkYXRvciB9IGZyb20gXCIuL1R5cGVWYWxpZGF0b3JcIjtcbmltcG9ydCB7IFBhc3N3b3JkVmFsaWRhdG9yIH0gZnJvbSBcIi4vUGFzc3dvcmRWYWxpZGF0b3JcIjtcbmltcG9ydCB7IFN0ZXBWYWxpZGF0b3IgfSBmcm9tIFwiLi9TdGVwVmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBVUkxWYWxpZGF0b3IgfSBmcm9tIFwiLi9VUkxWYWxpZGF0b3JcIjtcbmltcG9ydCB7IFBhdHRlcm5WYWxpZGF0b3IgfSBmcm9tIFwiLi9QYXR0ZXJuVmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBNaW5WYWxpZGF0b3IgfSBmcm9tIFwiLi9NaW5WYWxpZGF0b3JcIjtcbmltcG9ydCB7IE1pbkxlbmd0aFZhbGlkYXRvciB9IGZyb20gXCIuL01pbkxlbmd0aFZhbGlkYXRvclwiO1xuaW1wb3J0IHsgTWF4VmFsaWRhdG9yIH0gZnJvbSBcIi4vTWF4VmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBNYXhMZW5ndGhWYWxpZGF0b3IgfSBmcm9tIFwiLi9NYXhMZW5ndGhWYWxpZGF0b3JcIjtcbmltcG9ydCB7IFJlcXVpcmVkVmFsaWRhdG9yIH0gZnJvbSBcIi4vUmVxdWlyZWRWYWxpZGF0b3JcIjtcbmltcG9ydCB7IEVtYWlsVmFsaWRhdG9yIH0gZnJvbSBcIi4vRW1haWxWYWxpZGF0b3JcIjtcbmltcG9ydCB7IExpc3RWYWxpZGF0b3IgfSBmcm9tIFwiLi9MaXN0VmFsaWRhdG9yXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL2NvbnN0YW50c1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vRGF0ZVZhbGlkYXRvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vRW1haWxWYWxpZGF0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0xpc3RWYWxpZGF0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL01heExlbmd0aFZhbGlkYXRvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vTWF4VmFsaWRhdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9NaW5MZW5ndGhWYWxpZGF0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL01pblZhbGlkYXRvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vUGFzc3dvcmRWYWxpZGF0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1BhdHRlcm5WYWxpZGF0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1JlcXVpcmVkVmFsaWRhdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9TdGVwVmFsaWRhdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90eXBlc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vVHlwZVZhbGlkYXRvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vVVJMVmFsaWRhdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9WYWxpZGF0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1ZhbGlkYXRvclJlZ2lzdHJ5XCI7XG4vKipcbiAqIEBzdW1tYXJ5IGNvbnN0YW50IGhvbGRpbmcgYWxsIHtAbGluayBWYWxpZGF0b3J9c1xuICogQGNvbnN0YW50IFZhbGlkYXRvcnNcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdG9yLXZhbGlkYXRpb24uVmFsaWRhdGlvbi5WYWxpZGF0b3JzXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdGlvblxuICovXG5leHBvcnQgY29uc3QgVmFsaWRhdG9ycyA9IHtcbiAgRGF0ZVZhbGlkYXRvcixcbiAgRW1haWxWYWxpZGF0b3IsXG4gIExpc3RWYWxpZGF0b3IsXG4gIE1heExlbmd0aFZhbGlkYXRvcixcbiAgTWF4VmFsaWRhdG9yLFxuICBNaW5MZW5ndGhWYWxpZGF0b3IsXG4gIE1pblZhbGlkYXRvcixcbiAgUGFzc3dvcmRWYWxpZGF0b3IsXG4gIFBhdHRlcm5WYWxpZGF0b3IsXG4gIFJlcXVpcmVkVmFsaWRhdG9yLFxuICBTdGVwVmFsaWRhdG9yLFxuICBUeXBlVmFsaWRhdG9yLFxuICBVUkxWYWxpZGF0b3IsXG59O1xuIl19
@@ -0,0 +1,52 @@
1
+ import { DateValidator } from "./DateValidator";
2
+ import { TypeValidator } from "./TypeValidator";
3
+ import { PasswordValidator } from "./PasswordValidator";
4
+ import { StepValidator } from "./StepValidator";
5
+ import { URLValidator } from "./URLValidator";
6
+ import { PatternValidator } from "./PatternValidator";
7
+ import { MinValidator } from "./MinValidator";
8
+ import { MinLengthValidator } from "./MinLengthValidator";
9
+ import { MaxValidator } from "./MaxValidator";
10
+ import { MaxLengthValidator } from "./MaxLengthValidator";
11
+ import { RequiredValidator } from "./RequiredValidator";
12
+ import { EmailValidator } from "./EmailValidator";
13
+ import { ListValidator } from "./ListValidator";
14
+ export * from "./constants";
15
+ export * from "./DateValidator";
16
+ export * from "./decorators";
17
+ export * from "./EmailValidator";
18
+ export * from "./ListValidator";
19
+ export * from "./MaxLengthValidator";
20
+ export * from "./MaxValidator";
21
+ export * from "./MinLengthValidator";
22
+ export * from "./MinValidator";
23
+ export * from "./PasswordValidator";
24
+ export * from "./PatternValidator";
25
+ export * from "./RequiredValidator";
26
+ export * from "./StepValidator";
27
+ export * from "./types";
28
+ export * from "./TypeValidator";
29
+ export * from "./URLValidator";
30
+ export * from "./Validator";
31
+ export * from "./ValidatorRegistry";
32
+ /**
33
+ * @summary constant holding all {@link Validator}s
34
+ * @constant Validators
35
+ * @memberOf module:decorator-validation.Validation.Validators
36
+ * @category Validation
37
+ */
38
+ export declare const Validators: {
39
+ DateValidator: typeof DateValidator;
40
+ EmailValidator: typeof EmailValidator;
41
+ ListValidator: typeof ListValidator;
42
+ MaxLengthValidator: typeof MaxLengthValidator;
43
+ MaxValidator: typeof MaxValidator;
44
+ MinLengthValidator: typeof MinLengthValidator;
45
+ MinValidator: typeof MinValidator;
46
+ PasswordValidator: typeof PasswordValidator;
47
+ PatternValidator: typeof PatternValidator;
48
+ RequiredValidator: typeof RequiredValidator;
49
+ StepValidator: typeof StepValidator;
50
+ TypeValidator: typeof TypeValidator;
51
+ URLValidator: typeof URLValidator;
52
+ };
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+
4
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJ2YWxpZGF0aW9uL1ZhbGlkYXRvcnMvdHlwZXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0b3IgfSBmcm9tIFwiLi9WYWxpZGF0b3JcIjtcbmltcG9ydCB7IElSZWdpc3RyeSB9IGZyb20gXCIuLi8uLi91dGlscy9yZWdpc3RyeVwiO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IgfSBmcm9tIFwiLi4vLi4vbW9kZWwvdHlwZXNcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBVdGlsIHR5cGUgZm9yIHtAbGluayBWYWxpZGF0b3J9IGNvbmZpZ3VyYXRpb25cbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdG9yLXZhbGlkYXRpb24uVmFsaWRhdGlvblxuICogQGNhdGVnb3J5IFZhbGlkYXRpb25cbiAqL1xuZXhwb3J0IHR5cGUgVmFsaWRhdG9yRGVmaW5pdGlvbiA9IHtcbiAgdmFsaWRhdG9yOiBDb25zdHJ1Y3RvcjxWYWxpZGF0b3I+O1xuICB2YWxpZGF0aW9uS2V5OiBzdHJpbmc7XG4gIHNhdmU6IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIEBzdW1tYXJ5IEJhc2UgQVBJIGZvciBhIHtAbGluayBWYWxpZGF0b3J9IHJlZ2lzdHJ5XG4gKlxuICogQGludGVyZmFjZSBWYWxpZGF0b3JSZWdpc3RyeVxuICogQGV4dGVuZHMgSVJlZ2lzdHJ5XG4gKlxuICogQGNhdGVnb3J5IFZhbGlkYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJVmFsaWRhdG9yUmVnaXN0cnk8VCBleHRlbmRzIFZhbGlkYXRvcj4gZXh0ZW5kcyBJUmVnaXN0cnk8VD4ge1xuICAvKipcbiAgICogQHN1bW1hcnkgcmV0cmlldmVzIHRoZSBjdXN0b20ga2V5c1xuICAgKiBAbWV0aG9kXG4gICAqL1xuICBnZXRDdXN0b21LZXlzKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFJldHJpZXZlcyB0aGUgUmVnaXN0ZXJlZCB2YWxpZGF0b3Iga2V5c1xuICAgKiBAcmV0dXJuIHtzdHJpbmdbXX0gdGhlIHJlZ2lzdGVyZWQgdmFsaWRhdG9ycyBrZXlzXG4gICAqIEBtZXRob2RcbiAgICovXG4gIGdldEtleXMoKTogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFJlZ2lzdGVycyB0aGUgcHJvdmlkZWQgdmFsaWRhdG9ycyBvbnRvIHRoZSByZWdpc3RyeVxuICAgKlxuICAgKiBAdHlwZWRlZiBUIGV4dGVuZHMgVmFsaWRhdG9yXG4gICAqIEBwYXJhbSB7VFtdIHwgVmFsaWRhdG9yRGVmaW5pdGlvbltdfSB2YWxpZGF0b3JcbiAgICogQG1ldGhvZFxuICAgKi9cbiAgcmVnaXN0ZXI8VCBleHRlbmRzIFZhbGlkYXRvcj4oXG4gICAgLi4udmFsaWRhdG9yOiAoVCB8IFZhbGlkYXRvckRlZmluaXRpb24pW11cbiAgKTogdm9pZDtcblxuICAvKipcbiAgICogQHN1bW1hcnkgUmV0cmlldmVzIHRoZSBWYWxpZGF0b3IgY29uc3RydWN0b3IgaWYgcmVnaXN0ZXJlZFxuICAgKlxuICAgKiBAdHlwZWRlZiBUIGV4dGVuZHMgVmFsaWRhdG9yXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgb25lIG9mIHRoZSB7QGxpbmsgVmFsaWRhdGlvbktleXN9XG4gICAqIEByZXR1cm4ge1ZhbGlkYXRvciB8IHVuZGVmaW5lZH0gdGhlIHJlZ2lzdGVyZWQgVmFsaWRhdG9yIG9yIHVuZGVmaW5lZCBpZiB0aGVyZSBpcyBub25vIG1hdGNoaW5nIHRoZSBwcm92aWRlZCBrZXlcbiAgICogQG1ldGhvZFxuICAgKi9cbiAgZ2V0PFQgZXh0ZW5kcyBWYWxpZGF0b3I+KGtleTogc3RyaW5nKTogVCB8IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IHR5cGUgVmFsaWRhdG9yT3B0aW9ucyA9IHtcbiAgbWVzc2FnZT86IHN0cmluZztcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgVVJMVmFsaWRhdG9yT3B0aW9ucyBleHRlbmRzIFZhbGlkYXRvck9wdGlvbnMge1xuICB0eXBlczogc3RyaW5nIHwgc3RyaW5nW10gfCB7IG5hbWU6IHN0cmluZyB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVWYWxpZGF0b3JPcHRpb25zIGV4dGVuZHMgVmFsaWRhdG9yT3B0aW9ucyB7XG4gIHR5cGVzOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHsgbmFtZTogc3RyaW5nIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RlcFZhbGlkYXRvck9wdGlvbnMgZXh0ZW5kcyBWYWxpZGF0b3JPcHRpb25zIHtcbiAgc3RlcDogbnVtYmVyIHwgc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhdHRlcm5WYWxpZGF0b3JPcHRpb25zIGV4dGVuZHMgVmFsaWRhdG9yT3B0aW9ucyB7XG4gIHBhdHRlcm4/OiBSZWdFeHAgfCBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWluVmFsaWRhdG9yT3B0aW9ucyBleHRlbmRzIFZhbGlkYXRvck9wdGlvbnMge1xuICBtaW46IG51bWJlciB8IERhdGUgfCBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWluTGVuZ3RoVmFsaWRhdG9yT3B0aW9ucyBleHRlbmRzIFZhbGlkYXRvck9wdGlvbnMge1xuICBtaW5MZW5ndGg6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXhWYWxpZGF0b3JPcHRpb25zIGV4dGVuZHMgVmFsaWRhdG9yT3B0aW9ucyB7XG4gIG1heDogbnVtYmVyIHwgRGF0ZSB8IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXhMZW5ndGhWYWxpZGF0b3JPcHRpb25zIGV4dGVuZHMgVmFsaWRhdG9yT3B0aW9ucyB7XG4gIG1heExlbmd0aDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RWYWxpZGF0b3JPcHRpb25zIGV4dGVuZHMgVmFsaWRhdG9yT3B0aW9ucyB7XG4gIGNsYXp6OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRlVmFsaWRhdG9yT3B0aW9ucyBleHRlbmRzIFZhbGlkYXRvck9wdGlvbnMge1xuICBmb3JtYXQ/OiBzdHJpbmc7XG59XG4iXX0=
@@ -0,0 +1,88 @@
1
+ import { Validator } from "./Validator";
2
+ import { IRegistry } from "../../utils/registry";
3
+ import { Constructor } from "../../model/types";
4
+ /**
5
+ * @summary Util type for {@link Validator} configuration
6
+ * @memberOf module:decorator-validation.Validation
7
+ * @category Validation
8
+ */
9
+ export type ValidatorDefinition = {
10
+ validator: Constructor<Validator>;
11
+ validationKey: string;
12
+ save: boolean;
13
+ };
14
+ /**
15
+ * @summary Base API for a {@link Validator} registry
16
+ *
17
+ * @interface ValidatorRegistry
18
+ * @extends IRegistry
19
+ *
20
+ * @category Validation
21
+ */
22
+ export interface IValidatorRegistry<T extends Validator> extends IRegistry<T> {
23
+ /**
24
+ * @summary retrieves the custom keys
25
+ * @method
26
+ */
27
+ getCustomKeys(): Record<string, string>;
28
+ /**
29
+ * @summary Retrieves the Registered validator keys
30
+ * @return {string[]} the registered validators keys
31
+ * @method
32
+ */
33
+ getKeys(): string[];
34
+ /**
35
+ * @summary Registers the provided validators onto the registry
36
+ *
37
+ * @typedef T extends Validator
38
+ * @param {T[] | ValidatorDefinition[]} validator
39
+ * @method
40
+ */
41
+ register<T extends Validator>(...validator: (T | ValidatorDefinition)[]): void;
42
+ /**
43
+ * @summary Retrieves the Validator constructor if registered
44
+ *
45
+ * @typedef T extends Validator
46
+ * @param {string} key one of the {@link ValidationKeys}
47
+ * @return {Validator | undefined} the registered Validator or undefined if there is nono matching the provided key
48
+ * @method
49
+ */
50
+ get<T extends Validator>(key: string): T | undefined;
51
+ }
52
+ export type ValidatorOptions = {
53
+ message?: string;
54
+ };
55
+ export interface URLValidatorOptions extends ValidatorOptions {
56
+ types: string | string[] | {
57
+ name: string;
58
+ };
59
+ }
60
+ export interface TypeValidatorOptions extends ValidatorOptions {
61
+ types: string | string[] | {
62
+ name: string;
63
+ };
64
+ }
65
+ export interface StepValidatorOptions extends ValidatorOptions {
66
+ step: number | string;
67
+ }
68
+ export interface PatternValidatorOptions extends ValidatorOptions {
69
+ pattern?: RegExp | string;
70
+ }
71
+ export interface MinValidatorOptions extends ValidatorOptions {
72
+ min: number | Date | string;
73
+ }
74
+ export interface MinLengthValidatorOptions extends ValidatorOptions {
75
+ minLength: number;
76
+ }
77
+ export interface MaxValidatorOptions extends ValidatorOptions {
78
+ max: number | Date | string;
79
+ }
80
+ export interface MaxLengthValidatorOptions extends ValidatorOptions {
81
+ maxLength: number;
82
+ }
83
+ export interface ListValidatorOptions extends ValidatorOptions {
84
+ clazz: string[];
85
+ }
86
+ export interface DateValidatorOptions extends ValidatorOptions {
87
+ format?: string;
88
+ }