@decaf-ts/decorator-validation 1.15.0 → 1.17.0

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 (327) hide show
  1. package/lib/cjs/constants/errors.cjs +1 -0
  2. package/lib/cjs/constants/errors.cjs.map +1 -0
  3. package/lib/cjs/constants/index.cjs +1 -0
  4. package/lib/cjs/constants/index.cjs.map +1 -0
  5. package/lib/cjs/constants/validation.cjs +1 -0
  6. package/lib/cjs/constants/validation.cjs.map +1 -0
  7. package/lib/cjs/index.cjs +2 -1
  8. package/lib/cjs/index.cjs.map +1 -0
  9. package/lib/cjs/model/Builder.cjs +49 -48
  10. package/lib/cjs/model/Builder.cjs.map +1 -0
  11. package/lib/cjs/model/Model.cjs +31 -30
  12. package/lib/cjs/model/Model.cjs.map +1 -0
  13. package/lib/cjs/model/ModelErrorDefinition.cjs +1 -0
  14. package/lib/cjs/model/ModelErrorDefinition.cjs.map +1 -0
  15. package/lib/cjs/model/ModelRegistry.cjs +7 -6
  16. package/lib/cjs/model/ModelRegistry.cjs.map +1 -0
  17. package/lib/cjs/model/constants.cjs +2 -13
  18. package/lib/cjs/model/constants.cjs.map +1 -0
  19. package/lib/cjs/model/construction.cjs +5 -4
  20. package/lib/cjs/model/construction.cjs.map +1 -0
  21. package/lib/cjs/model/decorators.cjs +12 -11
  22. package/lib/cjs/model/decorators.cjs.map +1 -0
  23. package/lib/cjs/model/index.cjs +1 -0
  24. package/lib/cjs/model/index.cjs.map +1 -0
  25. package/lib/cjs/model/types.cjs +1 -0
  26. package/lib/cjs/model/types.cjs.map +1 -0
  27. package/lib/cjs/model/utils.cjs +1 -0
  28. package/lib/cjs/model/utils.cjs.map +1 -0
  29. package/lib/cjs/model/validation.cjs +33 -32
  30. package/lib/cjs/model/validation.cjs.map +1 -0
  31. package/lib/cjs/overrides/Metadata.cjs +1 -0
  32. package/lib/cjs/overrides/Metadata.cjs.map +1 -0
  33. package/lib/cjs/overrides/index.cjs +1 -0
  34. package/lib/cjs/overrides/index.cjs.map +1 -0
  35. package/lib/cjs/overrides/overrides.cjs +20 -19
  36. package/lib/cjs/overrides/overrides.cjs.map +1 -0
  37. package/lib/cjs/overrides/types.cjs +1 -0
  38. package/lib/cjs/overrides/types.cjs.map +1 -0
  39. package/lib/cjs/types/index.cjs +1 -0
  40. package/lib/cjs/types/index.cjs.map +1 -0
  41. package/lib/cjs/types/validation.cjs +1 -0
  42. package/lib/cjs/types/{validation.js.map → validation.cjs.map} +1 -1
  43. package/lib/cjs/utils/DateBuilder.cjs +1 -0
  44. package/lib/cjs/utils/DateBuilder.cjs.map +1 -0
  45. package/lib/cjs/utils/PathProxy.cjs +9 -8
  46. package/lib/cjs/utils/PathProxy.cjs.map +1 -0
  47. package/lib/cjs/utils/constants.cjs +2 -21
  48. package/lib/cjs/utils/constants.cjs.map +1 -0
  49. package/lib/cjs/utils/dates.cjs +9 -8
  50. package/lib/cjs/utils/dates.cjs.map +1 -0
  51. package/lib/cjs/utils/equality.cjs +1 -0
  52. package/lib/cjs/utils/equality.cjs.map +1 -0
  53. package/lib/cjs/utils/hashing.cjs +6 -3
  54. package/lib/cjs/utils/hashing.cjs.map +1 -0
  55. package/lib/cjs/utils/index.cjs +1 -0
  56. package/lib/cjs/utils/index.cjs.map +1 -0
  57. package/lib/cjs/utils/registry.cjs +1 -0
  58. package/lib/cjs/utils/registry.cjs.map +1 -0
  59. package/lib/cjs/utils/serialization.cjs +3 -2
  60. package/lib/cjs/utils/serialization.cjs.map +1 -0
  61. package/lib/cjs/utils/serializers.cjs +8 -7
  62. package/lib/cjs/utils/serializers.cjs.map +1 -0
  63. package/lib/cjs/utils/strings.cjs +1 -0
  64. package/lib/cjs/utils/strings.cjs.map +1 -0
  65. package/lib/cjs/utils/types.cjs +1 -0
  66. package/lib/cjs/utils/types.cjs.map +1 -0
  67. package/lib/cjs/validation/Validation.cjs +9 -8
  68. package/lib/cjs/validation/Validation.cjs.map +1 -0
  69. package/lib/cjs/validation/Validators/AsyncValidator.cjs +5 -4
  70. package/lib/cjs/validation/Validators/AsyncValidator.cjs.map +1 -0
  71. package/lib/cjs/validation/Validators/BaseValidator.cjs +8 -7
  72. package/lib/cjs/validation/Validators/BaseValidator.cjs.map +1 -0
  73. package/lib/cjs/validation/Validators/DateValidator.cjs +17 -11
  74. package/lib/cjs/validation/Validators/DateValidator.cjs.map +1 -0
  75. package/lib/cjs/validation/Validators/DiffValidator.cjs +21 -15
  76. package/lib/cjs/validation/Validators/DiffValidator.cjs.map +1 -0
  77. package/lib/cjs/validation/Validators/EmailValidator.cjs +18 -12
  78. package/lib/cjs/validation/Validators/EmailValidator.cjs.map +1 -0
  79. package/lib/cjs/validation/Validators/EqualsValidator.cjs +21 -15
  80. package/lib/cjs/validation/Validators/EqualsValidator.cjs.map +1 -0
  81. package/lib/cjs/validation/Validators/GreaterThanOrEqualValidator.cjs +24 -18
  82. package/lib/cjs/validation/Validators/GreaterThanOrEqualValidator.cjs.map +1 -0
  83. package/lib/cjs/validation/Validators/GreaterThanValidator.cjs +21 -15
  84. package/lib/cjs/validation/Validators/GreaterThanValidator.cjs.map +1 -0
  85. package/lib/cjs/validation/Validators/LessThanOrEqualValidator.cjs +24 -18
  86. package/lib/cjs/validation/Validators/LessThanOrEqualValidator.cjs.map +1 -0
  87. package/lib/cjs/validation/Validators/LessThanValidator.cjs +21 -15
  88. package/lib/cjs/validation/Validators/LessThanValidator.cjs.map +1 -0
  89. package/lib/cjs/validation/Validators/ListValidator.cjs +17 -11
  90. package/lib/cjs/validation/Validators/ListValidator.cjs.map +1 -0
  91. package/lib/cjs/validation/Validators/MaxLengthValidator.cjs +19 -13
  92. package/lib/cjs/validation/Validators/MaxLengthValidator.cjs.map +1 -0
  93. package/lib/cjs/validation/Validators/MaxValidator.cjs +17 -11
  94. package/lib/cjs/validation/Validators/MaxValidator.cjs.map +1 -0
  95. package/lib/cjs/validation/Validators/MinLengthValidator.cjs +19 -13
  96. package/lib/cjs/validation/Validators/MinLengthValidator.cjs.map +1 -0
  97. package/lib/cjs/validation/Validators/MinValidator.cjs +17 -11
  98. package/lib/cjs/validation/Validators/MinValidator.cjs.map +1 -0
  99. package/lib/cjs/validation/Validators/OptionValidator.cjs +17 -11
  100. package/lib/cjs/validation/Validators/OptionValidator.cjs.map +1 -0
  101. package/lib/cjs/validation/Validators/PasswordValidator.cjs +18 -12
  102. package/lib/cjs/validation/Validators/PasswordValidator.cjs.map +1 -0
  103. package/lib/cjs/validation/Validators/PatternValidator.cjs +17 -11
  104. package/lib/cjs/validation/Validators/PatternValidator.cjs.map +1 -0
  105. package/lib/cjs/validation/Validators/RequiredValidator.cjs +17 -11
  106. package/lib/cjs/validation/Validators/RequiredValidator.cjs.map +1 -0
  107. package/lib/cjs/validation/Validators/StepValidator.cjs +17 -11
  108. package/lib/cjs/validation/Validators/StepValidator.cjs.map +1 -0
  109. package/lib/cjs/validation/Validators/TypeValidator.cjs +23 -17
  110. package/lib/cjs/validation/Validators/TypeValidator.cjs.map +1 -0
  111. package/lib/cjs/validation/Validators/URLValidator.cjs +18 -12
  112. package/lib/cjs/validation/Validators/URLValidator.cjs.map +1 -0
  113. package/lib/cjs/validation/Validators/Validator.cjs +5 -4
  114. package/lib/cjs/validation/Validators/Validator.cjs.map +1 -0
  115. package/lib/cjs/validation/Validators/ValidatorRegistry.cjs +4 -3
  116. package/lib/cjs/validation/Validators/ValidatorRegistry.cjs.map +1 -0
  117. package/lib/cjs/validation/Validators/constants.cjs +3 -2
  118. package/lib/cjs/validation/Validators/constants.cjs.map +1 -0
  119. package/lib/cjs/validation/Validators/decorators.cjs +5 -4
  120. package/lib/cjs/validation/Validators/decorators.cjs.map +1 -0
  121. package/lib/cjs/validation/Validators/index.cjs +1 -0
  122. package/lib/cjs/validation/Validators/index.cjs.map +1 -0
  123. package/lib/cjs/validation/Validators/utils.cjs +14 -13
  124. package/lib/cjs/validation/Validators/utils.cjs.map +1 -0
  125. package/lib/cjs/validation/decorators.cjs +70 -69
  126. package/lib/cjs/validation/decorators.cjs.map +1 -0
  127. package/lib/cjs/validation/index.cjs +1 -0
  128. package/lib/cjs/validation/index.cjs.map +1 -0
  129. package/lib/cjs/validation/types.cjs +2 -1
  130. package/lib/cjs/validation/types.cjs.map +1 -0
  131. package/lib/esm/index.js +1 -1
  132. package/lib/types/constants/errors.d.cts +17 -0
  133. package/lib/types/constants/errors.d.mts +17 -0
  134. package/lib/types/constants/index.d.cts +2 -0
  135. package/lib/types/constants/index.d.mts +2 -0
  136. package/lib/types/constants/validation.d.cts +16 -0
  137. package/lib/types/constants/validation.d.mts +16 -0
  138. package/lib/types/index.d.cts +20 -0
  139. package/lib/types/index.d.mts +20 -0
  140. package/lib/types/index.d.ts +1 -1
  141. package/lib/types/model/Builder.d.cts +86 -0
  142. package/lib/types/model/Builder.d.mts +86 -0
  143. package/lib/types/model/Model.d.cts +286 -0
  144. package/lib/types/model/Model.d.mts +286 -0
  145. package/lib/types/model/ModelErrorDefinition.d.cts +22 -0
  146. package/lib/types/model/ModelErrorDefinition.d.mts +22 -0
  147. package/lib/types/model/ModelRegistry.d.cts +181 -0
  148. package/lib/types/model/ModelRegistry.d.mts +181 -0
  149. package/lib/types/model/constants.d.cts +65 -0
  150. package/lib/types/model/constants.d.mts +65 -0
  151. package/lib/types/model/construction.d.cts +46 -0
  152. package/lib/types/model/construction.d.mts +46 -0
  153. package/lib/types/model/decorators.d.cts +47 -0
  154. package/lib/types/model/decorators.d.mts +47 -0
  155. package/lib/types/model/index.d.cts +10 -0
  156. package/lib/types/model/index.d.mts +10 -0
  157. package/lib/types/model/types.d.cts +145 -0
  158. package/lib/types/model/types.d.mts +145 -0
  159. package/lib/types/model/utils.d.cts +13 -0
  160. package/lib/types/model/utils.d.mts +13 -0
  161. package/lib/types/model/validation.d.cts +92 -0
  162. package/lib/types/model/validation.d.mts +92 -0
  163. package/lib/types/overrides/Metadata.d.cts +132 -0
  164. package/lib/types/overrides/Metadata.d.mts +132 -0
  165. package/lib/types/overrides/index.d.cts +4 -0
  166. package/lib/types/overrides/index.d.mts +4 -0
  167. package/lib/types/overrides/overrides.d.cts +1 -0
  168. package/lib/types/overrides/overrides.d.mts +1 -0
  169. package/lib/types/overrides/types.d.cts +17 -0
  170. package/lib/types/overrides/types.d.mts +17 -0
  171. package/lib/types/types/index.d.cts +1 -0
  172. package/lib/types/types/index.d.mts +1 -0
  173. package/lib/types/types/validation.d.cts +28 -0
  174. package/lib/types/types/validation.d.mts +28 -0
  175. package/lib/types/utils/DateBuilder.d.cts +121 -0
  176. package/lib/types/utils/DateBuilder.d.mts +121 -0
  177. package/lib/types/utils/PathProxy.d.cts +43 -0
  178. package/lib/types/utils/PathProxy.d.mts +43 -0
  179. package/lib/types/utils/constants.d.cts +32 -0
  180. package/lib/types/utils/constants.d.mts +32 -0
  181. package/lib/types/utils/dates.d.cts +86 -0
  182. package/lib/types/utils/dates.d.mts +86 -0
  183. package/lib/types/utils/equality.d.cts +56 -0
  184. package/lib/types/utils/equality.d.mts +56 -0
  185. package/lib/types/utils/hashing.d.cts +82 -0
  186. package/lib/types/utils/hashing.d.mts +82 -0
  187. package/lib/types/utils/index.d.cts +11 -0
  188. package/lib/types/utils/index.d.mts +11 -0
  189. package/lib/types/utils/registry.d.cts +68 -0
  190. package/lib/types/utils/registry.d.mts +68 -0
  191. package/lib/types/utils/serialization.d.cts +12 -0
  192. package/lib/types/utils/serialization.d.mts +12 -0
  193. package/lib/types/utils/serializers.d.cts +41 -0
  194. package/lib/types/utils/serializers.d.mts +41 -0
  195. package/lib/types/utils/strings.d.cts +25 -0
  196. package/lib/types/utils/strings.d.mts +25 -0
  197. package/lib/types/utils/types.d.cts +35 -0
  198. package/lib/types/utils/types.d.mts +35 -0
  199. package/lib/types/validation/Validation.d.cts +53 -0
  200. package/lib/types/validation/Validation.d.mts +53 -0
  201. package/lib/types/validation/Validators/AsyncValidator.d.cts +72 -0
  202. package/lib/types/validation/Validators/AsyncValidator.d.mts +72 -0
  203. package/lib/types/validation/Validators/BaseValidator.d.cts +118 -0
  204. package/lib/types/validation/Validators/BaseValidator.d.mts +118 -0
  205. package/lib/types/validation/Validators/DateValidator.d.cts +60 -0
  206. package/lib/types/validation/Validators/DateValidator.d.mts +60 -0
  207. package/lib/types/validation/Validators/DiffValidator.d.cts +29 -0
  208. package/lib/types/validation/Validators/DiffValidator.d.mts +29 -0
  209. package/lib/types/validation/Validators/EmailValidator.d.cts +60 -0
  210. package/lib/types/validation/Validators/EmailValidator.d.mts +60 -0
  211. package/lib/types/validation/Validators/EqualsValidator.d.cts +29 -0
  212. package/lib/types/validation/Validators/EqualsValidator.d.mts +29 -0
  213. package/lib/types/validation/Validators/GreaterThanOrEqualValidator.d.cts +29 -0
  214. package/lib/types/validation/Validators/GreaterThanOrEqualValidator.d.mts +29 -0
  215. package/lib/types/validation/Validators/GreaterThanValidator.d.cts +29 -0
  216. package/lib/types/validation/Validators/GreaterThanValidator.d.mts +29 -0
  217. package/lib/types/validation/Validators/LessThanOrEqualValidator.d.cts +29 -0
  218. package/lib/types/validation/Validators/LessThanOrEqualValidator.d.mts +29 -0
  219. package/lib/types/validation/Validators/LessThanValidator.d.cts +29 -0
  220. package/lib/types/validation/Validators/LessThanValidator.d.mts +29 -0
  221. package/lib/types/validation/Validators/ListValidator.d.cts +66 -0
  222. package/lib/types/validation/Validators/ListValidator.d.mts +66 -0
  223. package/lib/types/validation/Validators/MaxLengthValidator.d.cts +29 -0
  224. package/lib/types/validation/Validators/MaxLengthValidator.d.mts +29 -0
  225. package/lib/types/validation/Validators/MaxValidator.d.cts +74 -0
  226. package/lib/types/validation/Validators/MaxValidator.d.mts +74 -0
  227. package/lib/types/validation/Validators/MinLengthValidator.d.cts +29 -0
  228. package/lib/types/validation/Validators/MinLengthValidator.d.mts +29 -0
  229. package/lib/types/validation/Validators/MinValidator.d.cts +74 -0
  230. package/lib/types/validation/Validators/MinValidator.d.mts +74 -0
  231. package/lib/types/validation/Validators/OptionValidator.d.cts +29 -0
  232. package/lib/types/validation/Validators/OptionValidator.d.mts +29 -0
  233. package/lib/types/validation/Validators/PasswordValidator.d.cts +28 -0
  234. package/lib/types/validation/Validators/PasswordValidator.d.mts +28 -0
  235. package/lib/types/validation/Validators/PatternValidator.d.cts +103 -0
  236. package/lib/types/validation/Validators/PatternValidator.d.mts +103 -0
  237. package/lib/types/validation/Validators/RequiredValidator.d.cts +74 -0
  238. package/lib/types/validation/Validators/RequiredValidator.d.mts +74 -0
  239. package/lib/types/validation/Validators/StepValidator.d.cts +29 -0
  240. package/lib/types/validation/Validators/StepValidator.d.mts +29 -0
  241. package/lib/types/validation/Validators/TypeValidator.d.cts +79 -0
  242. package/lib/types/validation/Validators/TypeValidator.d.mts +79 -0
  243. package/lib/types/validation/Validators/URLValidator.d.cts +61 -0
  244. package/lib/types/validation/Validators/URLValidator.d.mts +61 -0
  245. package/lib/types/validation/Validators/Validator.d.cts +65 -0
  246. package/lib/types/validation/Validators/Validator.d.mts +65 -0
  247. package/lib/types/validation/Validators/ValidatorRegistry.d.cts +41 -0
  248. package/lib/types/validation/Validators/ValidatorRegistry.d.mts +41 -0
  249. package/lib/types/validation/Validators/constants.d.cts +157 -0
  250. package/lib/types/validation/Validators/constants.d.mts +157 -0
  251. package/lib/types/validation/Validators/decorators.d.cts +12 -0
  252. package/lib/types/validation/Validators/decorators.d.mts +12 -0
  253. package/lib/types/validation/Validators/index.d.cts +26 -0
  254. package/lib/types/validation/Validators/index.d.mts +26 -0
  255. package/lib/types/validation/Validators/utils.d.cts +75 -0
  256. package/lib/types/validation/Validators/utils.d.mts +75 -0
  257. package/lib/types/validation/decorators.d.cts +313 -0
  258. package/lib/types/validation/decorators.d.mts +313 -0
  259. package/lib/types/validation/index.d.cts +9 -0
  260. package/lib/types/validation/index.d.mts +9 -0
  261. package/lib/types/validation/types.d.cts +309 -0
  262. package/lib/types/validation/types.d.mts +309 -0
  263. package/package.json +4 -4
  264. package/lib/cjs/constants/errors.js.map +0 -1
  265. package/lib/cjs/constants/index.js.map +0 -1
  266. package/lib/cjs/constants/validation.js.map +0 -1
  267. package/lib/cjs/index.js.map +0 -1
  268. package/lib/cjs/model/Builder.js.map +0 -1
  269. package/lib/cjs/model/Model.js.map +0 -1
  270. package/lib/cjs/model/ModelErrorDefinition.js.map +0 -1
  271. package/lib/cjs/model/ModelRegistry.js.map +0 -1
  272. package/lib/cjs/model/constants.js.map +0 -1
  273. package/lib/cjs/model/construction.js.map +0 -1
  274. package/lib/cjs/model/decorators.js.map +0 -1
  275. package/lib/cjs/model/index.js.map +0 -1
  276. package/lib/cjs/model/types.js.map +0 -1
  277. package/lib/cjs/model/utils.js.map +0 -1
  278. package/lib/cjs/model/validation.js.map +0 -1
  279. package/lib/cjs/overrides/Metadata.js.map +0 -1
  280. package/lib/cjs/overrides/index.js.map +0 -1
  281. package/lib/cjs/overrides/overrides.js.map +0 -1
  282. package/lib/cjs/overrides/types.js.map +0 -1
  283. package/lib/cjs/types/index.js.map +0 -1
  284. package/lib/cjs/utils/DateBuilder.js.map +0 -1
  285. package/lib/cjs/utils/PathProxy.js.map +0 -1
  286. package/lib/cjs/utils/constants.js.map +0 -1
  287. package/lib/cjs/utils/dates.js.map +0 -1
  288. package/lib/cjs/utils/equality.js.map +0 -1
  289. package/lib/cjs/utils/hashing.js.map +0 -1
  290. package/lib/cjs/utils/index.js.map +0 -1
  291. package/lib/cjs/utils/registry.js.map +0 -1
  292. package/lib/cjs/utils/serialization.js.map +0 -1
  293. package/lib/cjs/utils/serializers.js.map +0 -1
  294. package/lib/cjs/utils/strings.js.map +0 -1
  295. package/lib/cjs/utils/types.js.map +0 -1
  296. package/lib/cjs/validation/Validation.js.map +0 -1
  297. package/lib/cjs/validation/Validators/AsyncValidator.js.map +0 -1
  298. package/lib/cjs/validation/Validators/BaseValidator.js.map +0 -1
  299. package/lib/cjs/validation/Validators/DateValidator.js.map +0 -1
  300. package/lib/cjs/validation/Validators/DiffValidator.js.map +0 -1
  301. package/lib/cjs/validation/Validators/EmailValidator.js.map +0 -1
  302. package/lib/cjs/validation/Validators/EqualsValidator.js.map +0 -1
  303. package/lib/cjs/validation/Validators/GreaterThanOrEqualValidator.js.map +0 -1
  304. package/lib/cjs/validation/Validators/GreaterThanValidator.js.map +0 -1
  305. package/lib/cjs/validation/Validators/LessThanOrEqualValidator.js.map +0 -1
  306. package/lib/cjs/validation/Validators/LessThanValidator.js.map +0 -1
  307. package/lib/cjs/validation/Validators/ListValidator.js.map +0 -1
  308. package/lib/cjs/validation/Validators/MaxLengthValidator.js.map +0 -1
  309. package/lib/cjs/validation/Validators/MaxValidator.js.map +0 -1
  310. package/lib/cjs/validation/Validators/MinLengthValidator.js.map +0 -1
  311. package/lib/cjs/validation/Validators/MinValidator.js.map +0 -1
  312. package/lib/cjs/validation/Validators/OptionValidator.js.map +0 -1
  313. package/lib/cjs/validation/Validators/PasswordValidator.js.map +0 -1
  314. package/lib/cjs/validation/Validators/PatternValidator.js.map +0 -1
  315. package/lib/cjs/validation/Validators/RequiredValidator.js.map +0 -1
  316. package/lib/cjs/validation/Validators/StepValidator.js.map +0 -1
  317. package/lib/cjs/validation/Validators/TypeValidator.js.map +0 -1
  318. package/lib/cjs/validation/Validators/URLValidator.js.map +0 -1
  319. package/lib/cjs/validation/Validators/Validator.js.map +0 -1
  320. package/lib/cjs/validation/Validators/ValidatorRegistry.js.map +0 -1
  321. package/lib/cjs/validation/Validators/constants.js.map +0 -1
  322. package/lib/cjs/validation/Validators/decorators.js.map +0 -1
  323. package/lib/cjs/validation/Validators/index.js.map +0 -1
  324. package/lib/cjs/validation/Validators/utils.js.map +0 -1
  325. package/lib/cjs/validation/decorators.js.map +0 -1
  326. package/lib/cjs/validation/index.js.map +0 -1
  327. package/lib/cjs/validation/types.js.map +0 -1
@@ -0,0 +1,74 @@
1
+ import { Validator } from "./Validator.js";
2
+ import { MinValidatorOptions } from "../types.js";
3
+ /**
4
+ * @description Validator for checking if a value is greater than or equal to a minimum
5
+ * @summary The MinValidator checks if a numeric value, date, or string is greater than or equal to
6
+ * a specified minimum value. It supports comparing numbers directly, dates chronologically,
7
+ * and strings lexicographically. This validator is typically used with the @min decorator.
8
+ *
9
+ * @param {string} [message] - Custom error message to display when validation fails, defaults to {@link DEFAULT_ERROR_MESSAGES#MIN}
10
+ *
11
+ * @class MinValidator
12
+ * @extends Validator
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * // Create a min validator with default error message
17
+ * const minValidator = new MinValidator();
18
+ *
19
+ * // Create a min validator with custom error message
20
+ * const customMinValidator = new MinValidator("Value must be at least {0}");
21
+ *
22
+ * // Validate a number
23
+ * const numOptions = { min: 10, message: "Number too small" };
24
+ * const numResult = minValidator.hasErrors(50, numOptions); // undefined (valid)
25
+ * const invalidNumResult = minValidator.hasErrors(5, numOptions); // Returns error message (invalid)
26
+ *
27
+ * // Validate a date
28
+ * const dateOptions = { min: new Date(2023, 0, 1) };
29
+ * const dateResult = minValidator.hasErrors(new Date(2023, 5, 15), dateOptions); // undefined (valid)
30
+ * ```
31
+ *
32
+ * @mermaid
33
+ * sequenceDiagram
34
+ * participant C as Client
35
+ * participant V as MinValidator
36
+ *
37
+ * C->>V: new MinValidator(message)
38
+ * C->>V: hasErrors(value, options)
39
+ * alt value is undefined
40
+ * V-->>C: undefined (valid)
41
+ * else value is Date and min is not Date
42
+ * V->>V: Convert min to Date
43
+ * alt conversion fails
44
+ * V-->>C: Error: Invalid Min param
45
+ * end
46
+ * end
47
+ * alt value < min
48
+ * V-->>C: Error message
49
+ * else value >= min
50
+ * V-->>C: undefined (valid)
51
+ * end
52
+ *
53
+ * @category Validators
54
+ */
55
+ export declare class MinValidator extends Validator<MinValidatorOptions> {
56
+ constructor(message?: string);
57
+ /**
58
+ * @description Checks if a value is greater than or equal to a minimum
59
+ * @summary Validates that the provided value is not less than the minimum value
60
+ * specified in the options. For dates, it performs chronological comparison,
61
+ * converting string representations to Date objects if necessary. For numbers
62
+ * and strings, it performs direct comparison.
63
+ *
64
+ * @param {number | Date | string} value - The value to validate
65
+ * @param {MinValidatorOptions} options - Configuration options containing the minimum value
66
+ *
67
+ * @return {string | undefined} Error message if validation fails, undefined if validation passes
68
+ *
69
+ * @override
70
+ *
71
+ * @see Validator#hasErrors
72
+ */
73
+ hasErrors(value: number | Date | string, options: MinValidatorOptions): string | undefined;
74
+ }
@@ -0,0 +1,29 @@
1
+ import { Validator } from "./Validator.cjs";
2
+ import { EnumValidatorOptions } from "../types.cjs";
3
+ /**
4
+ * @summary Option Validator
5
+ * @description Validates properties against an object or a list of accepted values
6
+ *
7
+ * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#ENUM}
8
+ *
9
+ * @class OptionValidator
10
+ * @extends Validator
11
+ *
12
+ * @category Validators
13
+ */
14
+ export declare class OptionValidator extends Validator<EnumValidatorOptions> {
15
+ constructor(message?: string);
16
+ /**
17
+ *
18
+ * @param {any[] | Record<any, any>} value
19
+ * @param {EnumValidatorOptions} options
20
+ *
21
+ * @return {string | undefined}
22
+ *
23
+ * @memberOf module:decorator-validation
24
+ * @override
25
+ *
26
+ * @see Validator#hasErrors
27
+ */
28
+ hasErrors(value: any, options: EnumValidatorOptions): string | undefined;
29
+ }
@@ -0,0 +1,29 @@
1
+ import { Validator } from "./Validator.js";
2
+ import { EnumValidatorOptions } from "../types.js";
3
+ /**
4
+ * @summary Option Validator
5
+ * @description Validates properties against an object or a list of accepted values
6
+ *
7
+ * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#ENUM}
8
+ *
9
+ * @class OptionValidator
10
+ * @extends Validator
11
+ *
12
+ * @category Validators
13
+ */
14
+ export declare class OptionValidator extends Validator<EnumValidatorOptions> {
15
+ constructor(message?: string);
16
+ /**
17
+ *
18
+ * @param {any[] | Record<any, any>} value
19
+ * @param {EnumValidatorOptions} options
20
+ *
21
+ * @return {string | undefined}
22
+ *
23
+ * @memberOf module:decorator-validation
24
+ * @override
25
+ *
26
+ * @see Validator#hasErrors
27
+ */
28
+ hasErrors(value: any, options: EnumValidatorOptions): string | undefined;
29
+ }
@@ -0,0 +1,28 @@
1
+ import { PatternValidator } from "./PatternValidator.cjs";
2
+ import { PatternValidatorOptions } from "../types.cjs";
3
+ /**
4
+ * @summary Handles Password Validation
5
+ *
6
+ * @param {string} [errorMessage] defaults to {@link DEFAULT_ERROR_MESSAGES#PASSWORD}
7
+ *
8
+ * @class PasswordValidator
9
+ * @extends PatternValidator
10
+ *
11
+ * @category Validators
12
+ */
13
+ export declare class PasswordValidator extends PatternValidator {
14
+ constructor(message?: string);
15
+ /**
16
+ * @summary Validates a model
17
+ *
18
+ * @param {string} value
19
+ * @param {PatternValidatorOptions} [options={}]
20
+ *
21
+ * @return {string | undefined}
22
+ *
23
+ * @override
24
+ *
25
+ * @see PatternValidator#hasErrors
26
+ */
27
+ hasErrors(value: string, options?: PatternValidatorOptions): string | undefined;
28
+ }
@@ -0,0 +1,28 @@
1
+ import { PatternValidator } from "./PatternValidator.js";
2
+ import { PatternValidatorOptions } from "../types.js";
3
+ /**
4
+ * @summary Handles Password Validation
5
+ *
6
+ * @param {string} [errorMessage] defaults to {@link DEFAULT_ERROR_MESSAGES#PASSWORD}
7
+ *
8
+ * @class PasswordValidator
9
+ * @extends PatternValidator
10
+ *
11
+ * @category Validators
12
+ */
13
+ export declare class PasswordValidator extends PatternValidator {
14
+ constructor(message?: string);
15
+ /**
16
+ * @summary Validates a model
17
+ *
18
+ * @param {string} value
19
+ * @param {PatternValidatorOptions} [options={}]
20
+ *
21
+ * @return {string | undefined}
22
+ *
23
+ * @override
24
+ *
25
+ * @see PatternValidator#hasErrors
26
+ */
27
+ hasErrors(value: string, options?: PatternValidatorOptions): string | undefined;
28
+ }
@@ -0,0 +1,103 @@
1
+ import { Validator } from "./Validator.cjs";
2
+ import { PatternValidatorOptions } from "../types.cjs";
3
+ /**
4
+ * @description Regular expression for parsing string patterns with flags
5
+ * @summary This regular expression is used to parse string patterns in the format "/pattern/flags".
6
+ * It captures the pattern and flags separately, allowing the creation of a RegExp object
7
+ * with the appropriate flags.
8
+ *
9
+ * @const {RegExp}
10
+ * @memberOf module:decorator-validation
11
+ * @category Validation
12
+ */
13
+ export declare const regexpParser: RegExp;
14
+ /**
15
+ * @description Validator for checking if a string matches a regular expression pattern
16
+ * @summary The PatternValidator checks if a string value matches a specified regular expression pattern.
17
+ * It supports both RegExp objects and string representations of patterns, including those with flags.
18
+ * This validator is the foundation for specialized validators like EmailValidator and URLValidator,
19
+ * and is typically used with the @pattern decorator.
20
+ *
21
+ * @param {string} [message] - Custom error message to display when validation fails, defaults to {@link DEFAULT_ERROR_MESSAGES#PATTERN}
22
+ *
23
+ * @class PatternValidator
24
+ * @extends Validator
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * // Create a pattern validator with default error message
29
+ * const patternValidator = new PatternValidator();
30
+ *
31
+ * // Create a pattern validator with custom error message
32
+ * const customPatternValidator = new PatternValidator("Value must match the required format");
33
+ *
34
+ * // Validate using a RegExp object
35
+ * const regexOptions = { pattern: /^[A-Z][a-z]+$/ };
36
+ * patternValidator.hasErrors("Hello", regexOptions); // undefined (valid)
37
+ * patternValidator.hasErrors("hello", regexOptions); // Returns error message (invalid)
38
+ *
39
+ * // Validate using a string pattern
40
+ * const stringOptions = { pattern: "^\\d{3}-\\d{2}-\\d{4}$" };
41
+ * patternValidator.hasErrors("123-45-6789", stringOptions); // undefined (valid)
42
+ *
43
+ * // Validate using a string pattern with flags
44
+ * const flagOptions = { pattern: "/^hello$/i" };
45
+ * patternValidator.hasErrors("Hello", flagOptions); // undefined (valid)
46
+ * ```
47
+ *
48
+ * @mermaid
49
+ * sequenceDiagram
50
+ * participant C as Client
51
+ * participant V as PatternValidator
52
+ *
53
+ * C->>V: new PatternValidator(message)
54
+ * C->>V: hasErrors(value, options)
55
+ * alt value is empty
56
+ * V-->>C: undefined (valid)
57
+ * else pattern is missing
58
+ * V-->>C: Error: Missing Pattern
59
+ * else pattern is string
60
+ * V->>V: getPattern(pattern)
61
+ * end
62
+ * V->>V: Reset pattern.lastIndex
63
+ * V->>V: Test value against pattern
64
+ * alt pattern test passes
65
+ * V-->>C: undefined (valid)
66
+ * else pattern test fails
67
+ * V-->>C: Error message
68
+ * end
69
+ *
70
+ * @category Validators
71
+ */
72
+ export declare class PatternValidator extends Validator<PatternValidatorOptions> {
73
+ constructor(message?: string);
74
+ /**
75
+ * @description Converts a string pattern to a RegExp object
76
+ * @summary Parses a string representation of a regular expression and converts it to a RegExp object.
77
+ * It handles both simple string patterns and patterns with flags in the format "/pattern/flags".
78
+ *
79
+ * @param {string} pattern - The string pattern to convert
80
+ * @return {RegExp} A RegExp object created from the string pattern
81
+ * @private
82
+ */
83
+ private getPattern;
84
+ /**
85
+ * @description Checks if a string matches a regular expression pattern
86
+ * @summary Validates that the provided string matches the pattern specified in the options.
87
+ * If the pattern is provided as a string, it's converted to a RegExp object using the getPattern method.
88
+ * The method resets the pattern's lastIndex property to ensure consistent validation results
89
+ * for patterns with the global flag.
90
+ *
91
+ * @param {string} value - The string to validate against the pattern
92
+ * @param {PatternValidatorOptions} options - Configuration options containing the pattern
93
+ *
94
+ * @return {string | undefined} Error message if validation fails, undefined if validation passes
95
+ *
96
+ * @throws {Error} If no pattern is provided in the options
97
+ *
98
+ * @override
99
+ *
100
+ * @see Validator#hasErrors
101
+ */
102
+ hasErrors(value: string, options: PatternValidatorOptions): string | undefined;
103
+ }
@@ -0,0 +1,103 @@
1
+ import { Validator } from "./Validator.js";
2
+ import { PatternValidatorOptions } from "../types.js";
3
+ /**
4
+ * @description Regular expression for parsing string patterns with flags
5
+ * @summary This regular expression is used to parse string patterns in the format "/pattern/flags".
6
+ * It captures the pattern and flags separately, allowing the creation of a RegExp object
7
+ * with the appropriate flags.
8
+ *
9
+ * @const {RegExp}
10
+ * @memberOf module:decorator-validation
11
+ * @category Validation
12
+ */
13
+ export declare const regexpParser: RegExp;
14
+ /**
15
+ * @description Validator for checking if a string matches a regular expression pattern
16
+ * @summary The PatternValidator checks if a string value matches a specified regular expression pattern.
17
+ * It supports both RegExp objects and string representations of patterns, including those with flags.
18
+ * This validator is the foundation for specialized validators like EmailValidator and URLValidator,
19
+ * and is typically used with the @pattern decorator.
20
+ *
21
+ * @param {string} [message] - Custom error message to display when validation fails, defaults to {@link DEFAULT_ERROR_MESSAGES#PATTERN}
22
+ *
23
+ * @class PatternValidator
24
+ * @extends Validator
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * // Create a pattern validator with default error message
29
+ * const patternValidator = new PatternValidator();
30
+ *
31
+ * // Create a pattern validator with custom error message
32
+ * const customPatternValidator = new PatternValidator("Value must match the required format");
33
+ *
34
+ * // Validate using a RegExp object
35
+ * const regexOptions = { pattern: /^[A-Z][a-z]+$/ };
36
+ * patternValidator.hasErrors("Hello", regexOptions); // undefined (valid)
37
+ * patternValidator.hasErrors("hello", regexOptions); // Returns error message (invalid)
38
+ *
39
+ * // Validate using a string pattern
40
+ * const stringOptions = { pattern: "^\\d{3}-\\d{2}-\\d{4}$" };
41
+ * patternValidator.hasErrors("123-45-6789", stringOptions); // undefined (valid)
42
+ *
43
+ * // Validate using a string pattern with flags
44
+ * const flagOptions = { pattern: "/^hello$/i" };
45
+ * patternValidator.hasErrors("Hello", flagOptions); // undefined (valid)
46
+ * ```
47
+ *
48
+ * @mermaid
49
+ * sequenceDiagram
50
+ * participant C as Client
51
+ * participant V as PatternValidator
52
+ *
53
+ * C->>V: new PatternValidator(message)
54
+ * C->>V: hasErrors(value, options)
55
+ * alt value is empty
56
+ * V-->>C: undefined (valid)
57
+ * else pattern is missing
58
+ * V-->>C: Error: Missing Pattern
59
+ * else pattern is string
60
+ * V->>V: getPattern(pattern)
61
+ * end
62
+ * V->>V: Reset pattern.lastIndex
63
+ * V->>V: Test value against pattern
64
+ * alt pattern test passes
65
+ * V-->>C: undefined (valid)
66
+ * else pattern test fails
67
+ * V-->>C: Error message
68
+ * end
69
+ *
70
+ * @category Validators
71
+ */
72
+ export declare class PatternValidator extends Validator<PatternValidatorOptions> {
73
+ constructor(message?: string);
74
+ /**
75
+ * @description Converts a string pattern to a RegExp object
76
+ * @summary Parses a string representation of a regular expression and converts it to a RegExp object.
77
+ * It handles both simple string patterns and patterns with flags in the format "/pattern/flags".
78
+ *
79
+ * @param {string} pattern - The string pattern to convert
80
+ * @return {RegExp} A RegExp object created from the string pattern
81
+ * @private
82
+ */
83
+ private getPattern;
84
+ /**
85
+ * @description Checks if a string matches a regular expression pattern
86
+ * @summary Validates that the provided string matches the pattern specified in the options.
87
+ * If the pattern is provided as a string, it's converted to a RegExp object using the getPattern method.
88
+ * The method resets the pattern's lastIndex property to ensure consistent validation results
89
+ * for patterns with the global flag.
90
+ *
91
+ * @param {string} value - The string to validate against the pattern
92
+ * @param {PatternValidatorOptions} options - Configuration options containing the pattern
93
+ *
94
+ * @return {string | undefined} Error message if validation fails, undefined if validation passes
95
+ *
96
+ * @throws {Error} If no pattern is provided in the options
97
+ *
98
+ * @override
99
+ *
100
+ * @see Validator#hasErrors
101
+ */
102
+ hasErrors(value: string, options: PatternValidatorOptions): string | undefined;
103
+ }
@@ -0,0 +1,74 @@
1
+ import { Validator } from "./Validator.cjs";
2
+ import { ValidatorOptions } from "../types.cjs";
3
+ /**
4
+ * @description Validator for checking if a value is present and not empty
5
+ * @summary The RequiredValidator ensures that a value is provided and not empty.
6
+ * It handles different types of values appropriately: for booleans and numbers,
7
+ * it checks if they're undefined; for other types (strings, arrays, objects),
8
+ * it checks if they're falsy. This validator is typically used with the @required decorator
9
+ * and is often the first validation applied to important fields.
10
+ *
11
+ * @param {string} [message] - Custom error message to display when validation fails, defaults to {@link DEFAULT_ERROR_MESSAGES#REQUIRED}
12
+ *
13
+ * @class RequiredValidator
14
+ * @extends Validator
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * // Create a required validator with default error message
19
+ * const requiredValidator = new RequiredValidator();
20
+ *
21
+ * // Create a required validator with custom error message
22
+ * const customRequiredValidator = new RequiredValidator("This field is mandatory");
23
+ *
24
+ * // Validate different types of values
25
+ * requiredValidator.hasErrors("Hello"); // undefined (valid)
26
+ * requiredValidator.hasErrors(""); // Returns error message (invalid)
27
+ * requiredValidator.hasErrors(0); // undefined (valid - 0 is a valid number)
28
+ * requiredValidator.hasErrors(null); // Returns error message (invalid)
29
+ * requiredValidator.hasErrors([]); // undefined (valid - empty array is still an array)
30
+ * ```
31
+ *
32
+ * @mermaid
33
+ * sequenceDiagram
34
+ * participant C as Client
35
+ * participant V as RequiredValidator
36
+ *
37
+ * C->>V: new RequiredValidator(message)
38
+ * C->>V: hasErrors(value, options)
39
+ * alt typeof value is boolean or number
40
+ * alt value is undefined
41
+ * V-->>C: Error message
42
+ * else value is defined
43
+ * V-->>C: undefined (valid)
44
+ * end
45
+ * else other types
46
+ * alt value is falsy (null, undefined, empty string)
47
+ * V-->>C: Error message
48
+ * else value is truthy
49
+ * V-->>C: undefined (valid)
50
+ * end
51
+ * end
52
+ *
53
+ * @category Validators
54
+ */
55
+ export declare class RequiredValidator extends Validator {
56
+ constructor(message?: string);
57
+ /**
58
+ * @description Checks if a value is present and not empty
59
+ * @summary Validates that the provided value exists and is not empty.
60
+ * The validation logic varies by type:
61
+ * - For booleans and numbers: checks if the value is undefined
62
+ * - For other types (strings, arrays, objects): checks if the value is falsy
63
+ *
64
+ * @param {any} value - The value to validate
65
+ * @param {ValidatorOptions} [options={}] - Optional configuration options
66
+ *
67
+ * @return {string | undefined} Error message if validation fails, undefined if validation passes
68
+ *
69
+ * @override
70
+ *
71
+ * @see Validator#hasErrors
72
+ */
73
+ hasErrors(value: any, options?: ValidatorOptions): string | undefined;
74
+ }
@@ -0,0 +1,74 @@
1
+ import { Validator } from "./Validator.js";
2
+ import { ValidatorOptions } from "../types.js";
3
+ /**
4
+ * @description Validator for checking if a value is present and not empty
5
+ * @summary The RequiredValidator ensures that a value is provided and not empty.
6
+ * It handles different types of values appropriately: for booleans and numbers,
7
+ * it checks if they're undefined; for other types (strings, arrays, objects),
8
+ * it checks if they're falsy. This validator is typically used with the @required decorator
9
+ * and is often the first validation applied to important fields.
10
+ *
11
+ * @param {string} [message] - Custom error message to display when validation fails, defaults to {@link DEFAULT_ERROR_MESSAGES#REQUIRED}
12
+ *
13
+ * @class RequiredValidator
14
+ * @extends Validator
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * // Create a required validator with default error message
19
+ * const requiredValidator = new RequiredValidator();
20
+ *
21
+ * // Create a required validator with custom error message
22
+ * const customRequiredValidator = new RequiredValidator("This field is mandatory");
23
+ *
24
+ * // Validate different types of values
25
+ * requiredValidator.hasErrors("Hello"); // undefined (valid)
26
+ * requiredValidator.hasErrors(""); // Returns error message (invalid)
27
+ * requiredValidator.hasErrors(0); // undefined (valid - 0 is a valid number)
28
+ * requiredValidator.hasErrors(null); // Returns error message (invalid)
29
+ * requiredValidator.hasErrors([]); // undefined (valid - empty array is still an array)
30
+ * ```
31
+ *
32
+ * @mermaid
33
+ * sequenceDiagram
34
+ * participant C as Client
35
+ * participant V as RequiredValidator
36
+ *
37
+ * C->>V: new RequiredValidator(message)
38
+ * C->>V: hasErrors(value, options)
39
+ * alt typeof value is boolean or number
40
+ * alt value is undefined
41
+ * V-->>C: Error message
42
+ * else value is defined
43
+ * V-->>C: undefined (valid)
44
+ * end
45
+ * else other types
46
+ * alt value is falsy (null, undefined, empty string)
47
+ * V-->>C: Error message
48
+ * else value is truthy
49
+ * V-->>C: undefined (valid)
50
+ * end
51
+ * end
52
+ *
53
+ * @category Validators
54
+ */
55
+ export declare class RequiredValidator extends Validator {
56
+ constructor(message?: string);
57
+ /**
58
+ * @description Checks if a value is present and not empty
59
+ * @summary Validates that the provided value exists and is not empty.
60
+ * The validation logic varies by type:
61
+ * - For booleans and numbers: checks if the value is undefined
62
+ * - For other types (strings, arrays, objects): checks if the value is falsy
63
+ *
64
+ * @param {any} value - The value to validate
65
+ * @param {ValidatorOptions} [options={}] - Optional configuration options
66
+ *
67
+ * @return {string | undefined} Error message if validation fails, undefined if validation passes
68
+ *
69
+ * @override
70
+ *
71
+ * @see Validator#hasErrors
72
+ */
73
+ hasErrors(value: any, options?: ValidatorOptions): string | undefined;
74
+ }
@@ -0,0 +1,29 @@
1
+ import { Validator } from "./Validator.cjs";
2
+ import { StepValidatorOptions } from "../types.cjs";
3
+ /**
4
+ * @summary Step Validator
5
+ *
6
+ * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#STEP}
7
+ *
8
+ * @class StepValidator
9
+ * @extends Validator
10
+ *
11
+ * @category Validators
12
+ */
13
+ export declare class StepValidator extends Validator<StepValidatorOptions> {
14
+ constructor(message?: string);
15
+ /**
16
+ * @summary Validates a model
17
+ *
18
+ * @param {string} value
19
+ * @param {number} step
20
+ * @param {StepValidatorOptions} options
21
+ *
22
+ * @return {string | undefined}
23
+ *
24
+ * @override
25
+ *
26
+ * @see Validator#hasErrors
27
+ */
28
+ hasErrors(value: number | string, options: StepValidatorOptions): string | undefined;
29
+ }
@@ -0,0 +1,29 @@
1
+ import { Validator } from "./Validator.js";
2
+ import { StepValidatorOptions } from "../types.js";
3
+ /**
4
+ * @summary Step Validator
5
+ *
6
+ * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#STEP}
7
+ *
8
+ * @class StepValidator
9
+ * @extends Validator
10
+ *
11
+ * @category Validators
12
+ */
13
+ export declare class StepValidator extends Validator<StepValidatorOptions> {
14
+ constructor(message?: string);
15
+ /**
16
+ * @summary Validates a model
17
+ *
18
+ * @param {string} value
19
+ * @param {number} step
20
+ * @param {StepValidatorOptions} options
21
+ *
22
+ * @return {string | undefined}
23
+ *
24
+ * @override
25
+ *
26
+ * @see Validator#hasErrors
27
+ */
28
+ hasErrors(value: number | string, options: StepValidatorOptions): string | undefined;
29
+ }