@decaf-ts/decorator-validation 1.10.4 → 1.11.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 (218) hide show
  1. package/README.md +1 -1
  2. package/dist/decorator-validation.cjs +1 -1
  3. package/dist/decorator-validation.cjs.map +1 -1
  4. package/dist/decorator-validation.js +1 -1
  5. package/dist/decorator-validation.js.map +1 -1
  6. package/lib/esm/index.d.ts +2 -1
  7. package/lib/esm/index.js +2 -1
  8. package/lib/esm/index.js.map +1 -1
  9. package/lib/esm/model/Builder.d.ts +84 -0
  10. package/lib/esm/model/Builder.js +395 -129
  11. package/lib/esm/model/Builder.js.map +1 -1
  12. package/lib/esm/model/Model.d.ts +21 -19
  13. package/lib/esm/model/Model.js +112 -105
  14. package/lib/esm/model/Model.js.map +1 -1
  15. package/lib/esm/model/constants.d.ts +8 -8
  16. package/lib/esm/model/constants.js +8 -9
  17. package/lib/esm/model/constants.js.map +1 -1
  18. package/lib/esm/model/decorators.d.ts +2 -12
  19. package/lib/esm/model/decorators.js +5 -39
  20. package/lib/esm/model/decorators.js.map +1 -1
  21. package/lib/esm/model/index.d.ts +1 -0
  22. package/lib/esm/model/index.js +1 -0
  23. package/lib/esm/model/index.js.map +1 -1
  24. package/lib/esm/model/types.d.ts +0 -12
  25. package/lib/esm/model/utils.d.ts +0 -3
  26. package/lib/esm/model/utils.js +0 -10
  27. package/lib/esm/model/utils.js.map +1 -1
  28. package/lib/esm/model/validation.d.ts +4 -37
  29. package/lib/esm/model/validation.js +30 -106
  30. package/lib/esm/model/validation.js.map +1 -1
  31. package/lib/esm/overrides/Metadata.d.ts +128 -0
  32. package/lib/esm/overrides/Metadata.js +2 -0
  33. package/lib/esm/overrides/Metadata.js.map +1 -0
  34. package/lib/esm/overrides/index.d.ts +3 -0
  35. package/lib/esm/overrides/index.js +4 -0
  36. package/lib/esm/overrides/index.js.map +1 -0
  37. package/lib/esm/overrides/overrides.d.ts +1 -0
  38. package/lib/esm/overrides/overrides.js +79 -0
  39. package/lib/esm/overrides/overrides.js.map +1 -0
  40. package/lib/esm/overrides/types.d.ts +9 -0
  41. package/lib/esm/overrides/types.js +2 -0
  42. package/lib/esm/overrides/types.js.map +1 -0
  43. package/lib/esm/types/validation.d.ts +4 -2
  44. package/lib/esm/utils/constants.d.ts +4 -18
  45. package/lib/esm/utils/constants.js +4 -17
  46. package/lib/esm/utils/constants.js.map +1 -1
  47. package/lib/esm/utils/dates.d.ts +0 -1
  48. package/lib/esm/utils/dates.js +0 -1
  49. package/lib/esm/utils/dates.js.map +1 -1
  50. package/lib/esm/utils/equality.d.ts +56 -0
  51. package/lib/esm/utils/equality.js +160 -0
  52. package/lib/esm/utils/equality.js.map +1 -0
  53. package/lib/esm/utils/index.d.ts +1 -2
  54. package/lib/esm/utils/index.js +1 -2
  55. package/lib/esm/utils/index.js.map +1 -1
  56. package/lib/esm/utils/registry.d.ts +1 -1
  57. package/lib/esm/utils/serialization.d.ts +2 -2
  58. package/lib/esm/utils/serialization.js +10 -2
  59. package/lib/esm/utils/serialization.js.map +1 -1
  60. package/lib/esm/utils/types.d.ts +0 -102
  61. package/lib/esm/validation/Validation.d.ts +2 -3
  62. package/lib/esm/validation/Validation.js +11 -6
  63. package/lib/esm/validation/Validation.js.map +1 -1
  64. package/lib/esm/validation/Validators/BaseValidator.js +7 -3
  65. package/lib/esm/validation/Validators/BaseValidator.js.map +1 -1
  66. package/lib/esm/validation/Validators/DiffValidator.js +1 -1
  67. package/lib/esm/validation/Validators/DiffValidator.js.map +1 -1
  68. package/lib/esm/validation/Validators/EqualsValidator.js +1 -1
  69. package/lib/esm/validation/Validators/EqualsValidator.js.map +1 -1
  70. package/lib/esm/validation/Validators/GreaterThanOrEqualValidator.js +1 -1
  71. package/lib/esm/validation/Validators/GreaterThanOrEqualValidator.js.map +1 -1
  72. package/lib/esm/validation/Validators/LessThanOrEqualValidator.js +1 -1
  73. package/lib/esm/validation/Validators/LessThanOrEqualValidator.js.map +1 -1
  74. package/lib/esm/validation/Validators/ListValidator.js +4 -4
  75. package/lib/esm/validation/Validators/ListValidator.js.map +1 -1
  76. package/lib/esm/validation/Validators/MaxLengthValidator.js +3 -2
  77. package/lib/esm/validation/Validators/MaxLengthValidator.js.map +1 -1
  78. package/lib/esm/validation/Validators/MaxValidator.js +1 -1
  79. package/lib/esm/validation/Validators/MaxValidator.js.map +1 -1
  80. package/lib/esm/validation/Validators/MinLengthValidator.js +3 -2
  81. package/lib/esm/validation/Validators/MinLengthValidator.js.map +1 -1
  82. package/lib/esm/validation/Validators/MinValidator.js +1 -1
  83. package/lib/esm/validation/Validators/MinValidator.js.map +1 -1
  84. package/lib/esm/validation/Validators/OptionValidator.d.ts +29 -0
  85. package/lib/esm/validation/Validators/OptionValidator.js +61 -0
  86. package/lib/esm/validation/Validators/OptionValidator.js.map +1 -0
  87. package/lib/esm/validation/Validators/TypeValidator.js +2 -2
  88. package/lib/esm/validation/Validators/TypeValidator.js.map +1 -1
  89. package/lib/esm/validation/Validators/constants.d.ts +2 -1
  90. package/lib/esm/validation/Validators/constants.js +3 -2
  91. package/lib/esm/validation/Validators/constants.js.map +1 -1
  92. package/lib/esm/validation/Validators/decorators.d.ts +1 -1
  93. package/lib/esm/validation/Validators/decorators.js +2 -2
  94. package/lib/esm/validation/Validators/decorators.js.map +1 -1
  95. package/lib/esm/validation/Validators/index.d.ts +1 -0
  96. package/lib/esm/validation/Validators/index.js +1 -0
  97. package/lib/esm/validation/Validators/index.js.map +1 -1
  98. package/lib/esm/validation/Validators/utils.d.ts +33 -0
  99. package/lib/esm/validation/Validators/utils.js +62 -0
  100. package/lib/esm/validation/Validators/utils.js.map +1 -1
  101. package/lib/esm/validation/decorators.d.ts +28 -17
  102. package/lib/esm/validation/decorators.js +86 -55
  103. package/lib/esm/validation/decorators.js.map +1 -1
  104. package/lib/esm/validation/types.d.ts +15 -5
  105. package/lib/esm/validation/types.js.map +1 -1
  106. package/lib/index.cjs +2 -1
  107. package/lib/index.d.ts +2 -1
  108. package/lib/index.js.map +1 -1
  109. package/lib/model/Builder.cjs +399 -128
  110. package/lib/model/Builder.d.ts +84 -0
  111. package/lib/model/Builder.js.map +1 -1
  112. package/lib/model/Model.cjs +114 -107
  113. package/lib/model/Model.d.ts +21 -19
  114. package/lib/model/Model.js.map +1 -1
  115. package/lib/model/constants.cjs +8 -9
  116. package/lib/model/constants.d.ts +8 -8
  117. package/lib/model/constants.js.map +1 -1
  118. package/lib/model/decorators.cjs +4 -39
  119. package/lib/model/decorators.d.ts +2 -12
  120. package/lib/model/decorators.js.map +1 -1
  121. package/lib/model/index.cjs +1 -0
  122. package/lib/model/index.d.ts +1 -0
  123. package/lib/model/index.js.map +1 -1
  124. package/lib/model/types.d.ts +0 -12
  125. package/lib/model/utils.cjs +0 -12
  126. package/lib/model/utils.d.ts +0 -3
  127. package/lib/model/utils.js.map +1 -1
  128. package/lib/model/validation.cjs +30 -108
  129. package/lib/model/validation.d.ts +4 -37
  130. package/lib/model/validation.js.map +1 -1
  131. package/lib/overrides/Metadata.cjs +3 -0
  132. package/lib/overrides/Metadata.d.ts +128 -0
  133. package/lib/overrides/Metadata.js.map +1 -0
  134. package/lib/overrides/index.cjs +20 -0
  135. package/lib/overrides/index.d.ts +3 -0
  136. package/lib/overrides/index.js.map +1 -0
  137. package/lib/overrides/overrides.cjs +81 -0
  138. package/lib/overrides/overrides.d.ts +1 -0
  139. package/lib/overrides/overrides.js.map +1 -0
  140. package/lib/overrides/types.cjs +3 -0
  141. package/lib/overrides/types.d.ts +9 -0
  142. package/lib/overrides/types.js.map +1 -0
  143. package/lib/types/validation.d.ts +4 -2
  144. package/lib/utils/constants.cjs +5 -18
  145. package/lib/utils/constants.d.ts +4 -18
  146. package/lib/utils/constants.js.map +1 -1
  147. package/lib/utils/dates.cjs +0 -1
  148. package/lib/utils/dates.d.ts +0 -1
  149. package/lib/utils/dates.js.map +1 -1
  150. package/lib/utils/equality.cjs +163 -0
  151. package/lib/utils/equality.d.ts +56 -0
  152. package/lib/utils/equality.js.map +1 -0
  153. package/lib/utils/index.cjs +1 -2
  154. package/lib/utils/index.d.ts +1 -2
  155. package/lib/utils/index.js.map +1 -1
  156. package/lib/utils/registry.d.ts +1 -1
  157. package/lib/utils/serialization.cjs +10 -2
  158. package/lib/utils/serialization.d.ts +2 -2
  159. package/lib/utils/serialization.js.map +1 -1
  160. package/lib/utils/types.d.ts +0 -102
  161. package/lib/validation/Validation.cjs +11 -6
  162. package/lib/validation/Validation.d.ts +2 -3
  163. package/lib/validation/Validation.js.map +1 -1
  164. package/lib/validation/Validators/BaseValidator.cjs +7 -3
  165. package/lib/validation/Validators/BaseValidator.js.map +1 -1
  166. package/lib/validation/Validators/DiffValidator.cjs +2 -2
  167. package/lib/validation/Validators/DiffValidator.js.map +1 -1
  168. package/lib/validation/Validators/EqualsValidator.cjs +2 -2
  169. package/lib/validation/Validators/EqualsValidator.js.map +1 -1
  170. package/lib/validation/Validators/GreaterThanOrEqualValidator.cjs +2 -2
  171. package/lib/validation/Validators/GreaterThanOrEqualValidator.js.map +1 -1
  172. package/lib/validation/Validators/LessThanOrEqualValidator.cjs +2 -2
  173. package/lib/validation/Validators/LessThanOrEqualValidator.js.map +1 -1
  174. package/lib/validation/Validators/ListValidator.cjs +4 -4
  175. package/lib/validation/Validators/ListValidator.js.map +1 -1
  176. package/lib/validation/Validators/MaxLengthValidator.cjs +3 -2
  177. package/lib/validation/Validators/MaxLengthValidator.js.map +1 -1
  178. package/lib/validation/Validators/MaxValidator.cjs +1 -1
  179. package/lib/validation/Validators/MaxValidator.js.map +1 -1
  180. package/lib/validation/Validators/MinLengthValidator.cjs +3 -2
  181. package/lib/validation/Validators/MinLengthValidator.js.map +1 -1
  182. package/lib/validation/Validators/MinValidator.cjs +1 -1
  183. package/lib/validation/Validators/MinValidator.js.map +1 -1
  184. package/lib/validation/Validators/OptionValidator.cjs +64 -0
  185. package/lib/validation/Validators/OptionValidator.d.ts +29 -0
  186. package/lib/validation/Validators/OptionValidator.js.map +1 -0
  187. package/lib/validation/Validators/TypeValidator.cjs +2 -2
  188. package/lib/validation/Validators/TypeValidator.js.map +1 -1
  189. package/lib/validation/Validators/constants.cjs +5 -4
  190. package/lib/validation/Validators/constants.d.ts +2 -1
  191. package/lib/validation/Validators/constants.js.map +1 -1
  192. package/lib/validation/Validators/decorators.cjs +3 -3
  193. package/lib/validation/Validators/decorators.d.ts +1 -1
  194. package/lib/validation/Validators/decorators.js.map +1 -1
  195. package/lib/validation/Validators/index.cjs +1 -0
  196. package/lib/validation/Validators/index.d.ts +1 -0
  197. package/lib/validation/Validators/index.js.map +1 -1
  198. package/lib/validation/Validators/utils.cjs +66 -0
  199. package/lib/validation/Validators/utils.d.ts +33 -0
  200. package/lib/validation/Validators/utils.js.map +1 -1
  201. package/lib/validation/decorators.cjs +102 -69
  202. package/lib/validation/decorators.d.ts +28 -17
  203. package/lib/validation/decorators.js.map +1 -1
  204. package/lib/validation/types.d.ts +15 -5
  205. package/lib/validation/types.js.map +1 -1
  206. package/package.json +2 -3
  207. package/lib/esm/utils/Decoration.d.ts +0 -135
  208. package/lib/esm/utils/Decoration.js +0 -227
  209. package/lib/esm/utils/Decoration.js.map +0 -1
  210. package/lib/esm/utils/decorators.d.ts +0 -38
  211. package/lib/esm/utils/decorators.js +0 -64
  212. package/lib/esm/utils/decorators.js.map +0 -1
  213. package/lib/utils/Decoration.cjs +0 -231
  214. package/lib/utils/Decoration.d.ts +0 -135
  215. package/lib/utils/Decoration.js.map +0 -1
  216. package/lib/utils/decorators.cjs +0 -68
  217. package/lib/utils/decorators.d.ts +0 -38
  218. package/lib/utils/decorators.js.map +0 -1
@@ -1,5 +1,7 @@
1
1
  import { ValidatorRegistry } from "./Validators/ValidatorRegistry.js";
2
2
  import { ValidationKeys } from "./Validators/constants.js";
3
+ import { ModelKeys } from "./../utils/index.js";
4
+ import { Metadata } from "@decaf-ts/decoration";
3
5
  /**
4
6
  * @summary Static class acting as a namespace for the Validation
5
7
  *
@@ -10,7 +12,6 @@ import { ValidationKeys } from "./Validators/constants.js";
10
12
  */
11
13
  export class Validation {
12
14
  static { this.actingValidatorRegistry = undefined; }
13
- static { this.loadedDecorators = {}; }
14
15
  constructor() { }
15
16
  /**
16
17
  * @summary Defines the acting ValidatorRegistry
@@ -70,14 +71,18 @@ export class Validation {
70
71
  return this.getRegistry().getKeys();
71
72
  }
72
73
  static registerDecorator(key, decorator) {
73
- if (key in this.loadedDecorators)
74
+ const meta = Metadata["innerGet"](Symbol.for(ModelKeys.DECORATORS), Metadata.key(ValidationKeys.REFLECT, key));
75
+ if (meta?.[key])
74
76
  return;
75
- this.loadedDecorators[key] = decorator;
77
+ Metadata.set(ModelKeys.DECORATORS, Metadata.key(ValidationKeys.REFLECT, key), decorator);
76
78
  }
77
79
  static decoratorFromKey(key) {
78
- if (!(key in this.loadedDecorators))
79
- throw new Error(`No decorator registered under ${key}`);
80
- return this.loadedDecorators[key];
80
+ try {
81
+ return Metadata["innerGet"](Symbol.for(ModelKeys.DECORATORS), Metadata.key(ValidationKeys.REFLECT, key));
82
+ }
83
+ catch (e) {
84
+ throw new Error(`No decorator registered under ${key}: ${e}`);
85
+ }
81
86
  }
82
87
  }
83
88
  //# sourceMappingURL=Validation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Validation.js","sourceRoot":"","sources":["../../../src/validation/Validation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,0CAAuC;AACnE,OAAO,EAAE,cAAc,EAAE,kCAA+B;AAExD;;;;;;;GAOG;AACH,MAAM,OAAO,UAAU;aACN,4BAAuB,GACpC,SAAS,CAAC;aAEG,qBAAgB,GAAsC,EAAE,CAAC;IACxE,gBAAuB,CAAC;IAExB;;;;;OAKG;IACH,MAAM,CAAC,WAAW,CAChB,iBAAgD,EAChD,gBAAsD;QAEtD,IAAI,gBAAgB,IAAI,UAAU,CAAC,uBAAuB;YACxD,UAAU,CAAC,uBAAuB,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE;gBACjE,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC3C,IAAI,SAAS;oBAAE,iBAAiB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;YACzE,CAAC,CAAC,CAAC;QACL,UAAU,CAAC,uBAAuB,GAAG,iBAAiB,CAAC;IACzD,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,WAAW;QACxB,IAAI,CAAC,UAAU,CAAC,uBAAuB;YACrC,UAAU,CAAC,uBAAuB,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAC/D,OAAO,UAAU,CAAC,uBAAuB,CAAC;IAC5C,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,GAAG,CAAsB,YAAoB;QAClD,OAAO,UAAU,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CACb,GAAG,SAAsC;QAEzC,OAAO,UAAU,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,CAAC;IACzD,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,GAAG,CAAC,GAAW;QACpB,OAAO,cAAc,CAAC,OAAO,GAAG,GAAG,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAI;QACT,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,GAAW,EAAE,SAA4B;QAChE,IAAI,GAAG,IAAI,IAAI,CAAC,gBAAgB;YAAE,OAAO;QACzC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,GAAW;QACjC,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,gBAAgB,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,EAAE,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC"}
1
+ {"version":3,"file":"Validation.js","sourceRoot":"","sources":["../../../src/validation/Validation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,0CAAuC;AACnE,OAAO,EAAE,cAAc,EAAE,kCAA+B;AACxD,OAAO,EAAE,SAAS,EAAE,4BAAuB;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD;;;;;;;GAOG;AACH,MAAM,OAAO,UAAU;aACN,4BAAuB,GACpC,SAAS,CAAC;IAEZ,gBAAuB,CAAC;IAExB;;;;;OAKG;IACH,MAAM,CAAC,WAAW,CAChB,iBAAgD,EAChD,gBAAsD;QAEtD,IAAI,gBAAgB,IAAI,UAAU,CAAC,uBAAuB;YACxD,UAAU,CAAC,uBAAuB,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE;gBACjE,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC3C,IAAI,SAAS;oBAAE,iBAAiB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;YACzE,CAAC,CAAC,CAAC;QACL,UAAU,CAAC,uBAAuB,GAAG,iBAAiB,CAAC;IACzD,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,WAAW;QACxB,IAAI,CAAC,UAAU,CAAC,uBAAuB;YACrC,UAAU,CAAC,uBAAuB,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAC/D,OAAO,UAAU,CAAC,uBAAuB,CAAC;IAC5C,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,GAAG,CAAsB,YAAoB;QAClD,OAAO,UAAU,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CACb,GAAG,SAAsC;QAEzC,OAAO,UAAU,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,CAAC;IACzD,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,GAAG,CAAC,GAAW;QACpB,OAAO,cAAc,CAAC,OAAO,GAAG,GAAG,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAI;QACT,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,iBAAiB,CACtB,GAAW,EACX,SAAgD;QAEhD,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAC/B,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,EAChC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CACO,CAAC;QACnD,IAAI,IAAI,EAAE,CAAC,GAAG,CAAC;YAAE,OAAO;QACxB,QAAQ,CAAC,GAAG,CACV,SAAS,CAAC,UAAU,EACpB,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,EACzC,SAAS,CACV,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,GAAW;QACjC,IAAI,CAAC;YACH,OAAO,QAAQ,CAAC,UAAU,CAAC,CACzB,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,EAChC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAC1C,CAAC;QACJ,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;QAChE,CAAC;IACH,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { DEFAULT_ERROR_MESSAGES } from "./constants.js";
2
2
  import { sf } from "./../../utils/strings.js";
3
- import { Reflection } from "@decaf-ts/reflection";
3
+ import { checkTypes } from "./utils.js";
4
4
  /**
5
5
  * @description Abstract base class for all validators in the validation framework.
6
6
  * @summary The BaseValidator class provides the foundation for all synchronous and asynchronous validator implementations.
@@ -101,8 +101,12 @@ export class BaseValidator {
101
101
  return function (value, options, proxy, ...args) {
102
102
  if (value === undefined || !this.acceptedTypes)
103
103
  return unbound(value, options, proxy, ...args);
104
- if (!Reflection.checkTypes(value, this.acceptedTypes))
105
- return this.getMessage(DEFAULT_ERROR_MESSAGES.TYPE, this.acceptedTypes.join(", "), typeof value);
104
+ if (!checkTypes(value, this.acceptedTypes))
105
+ return this.getMessage(DEFAULT_ERROR_MESSAGES.TYPE, this.acceptedTypes.join(", "), typeof value !== "number"
106
+ ? typeof value
107
+ : isNaN(value)
108
+ ? "NaN"
109
+ : typeof value);
106
110
  return unbound(value, options, proxy, ...args);
107
111
  }.bind(this);
108
112
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BaseValidator.js","sourceRoot":"","sources":["../../../../src/validation/Validators/BaseValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,uBAAoB;AACrD,OAAO,EAAE,EAAE,EAAE,iCAA4B;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAKlD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG;AACH,MAAM,OAAgB,aAAa;IAQjC,YACE,KAAY,EACZ,UAAkB,sBAAsB,CAAC,OAAO,EAChD,GAAG,aAAuB;QAE1B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,IAAI,aAAa,CAAC,MAAM;YAAE,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QAC7D,IAAI,IAAI,CAAC,aAAa;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,qBAAqB,CACzC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAQ,CAC1B,CAAC;IACb,CAAC;IAED;;;;;;;;;;OAUG;IACO,UAAU,CAAC,OAAe,EAAE,GAAG,IAAW;QAClD,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED;;;;;;;;;OASG;IACK,qBAAqB,CAC3B,OAKgD;QAEhD,OAAO,UAEL,KAAU,EACV,OAAU,EACV,KAAsB,EACtB,GAAG,IAAW;YAEd,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,aAAa;gBAC5C,OAAO,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;YACjD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC;gBACnD,OAAO,IAAI,CAAC,UAAU,CACpB,sBAAsB,CAAC,IAAI,EAC3B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAC7B,OAAO,KAAK,CACb,CAAC;YACJ,OAAO,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;QACjD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAyBD;;;OAGG;IACH,MAAM,CAAC,WAAW,CAAC,GAAQ;QACzB,OAAO,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC/C,CAAC;CACF"}
1
+ {"version":3,"file":"BaseValidator.js","sourceRoot":"","sources":["../../../../src/validation/Validators/BaseValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,uBAAoB;AACrD,OAAO,EAAE,EAAE,EAAE,iCAA4B;AAIzC,OAAO,EAAE,UAAU,EAAE,mBAAgB;AAErC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG;AACH,MAAM,OAAgB,aAAa;IAQjC,YACE,KAAY,EACZ,UAAkB,sBAAsB,CAAC,OAAO,EAChD,GAAG,aAAuB;QAE1B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,IAAI,aAAa,CAAC,MAAM;YAAE,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QAC7D,IAAI,IAAI,CAAC,aAAa;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,qBAAqB,CACzC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAQ,CAC1B,CAAC;IACb,CAAC;IAED;;;;;;;;;;OAUG;IACO,UAAU,CAAC,OAAe,EAAE,GAAG,IAAW;QAClD,OAAO,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED;;;;;;;;;OASG;IACK,qBAAqB,CAC3B,OAKgD;QAEhD,OAAO,UAEL,KAAU,EACV,OAAU,EACV,KAAsB,EACtB,GAAG,IAAW;YAEd,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,aAAa;gBAC5C,OAAO,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;YACjD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC;gBACxC,OAAO,IAAI,CAAC,UAAU,CACpB,sBAAsB,CAAC,IAAI,EAC3B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAC7B,OAAO,KAAK,KAAK,QAAQ;oBACvB,CAAC,CAAC,OAAO,KAAK;oBACd,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;wBACZ,CAAC,CAAC,KAAK;wBACP,CAAC,CAAC,OAAO,KAAK,CACnB,CAAC;YACJ,OAAO,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;QACjD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAyBD;;;OAGG;IACH,MAAM,CAAC,WAAW,CAAC,GAAQ;QACzB,OAAO,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC/C,CAAC;CACF"}
@@ -10,7 +10,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  import { Validator } from "./Validator.js";
11
11
  import { DEFAULT_ERROR_MESSAGES, ValidationKeys } from "./constants.js";
12
12
  import { validator } from "./decorators.js";
13
- import { isEqual } from "@decaf-ts/reflection";
13
+ import { isEqual } from "./../../utils/equality.js";
14
14
  /**
15
15
  * @summary Diff Validator
16
16
  *
@@ -1 +1 @@
1
- {"version":3,"file":"DiffValidator.js","sourceRoot":"","sources":["../../../../src/validation/Validators/DiffValidator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,uBAAoB;AACxC,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,uBAAoB;AACrE,OAAO,EAAE,SAAS,EAAE,wBAAqB;AAEzC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C;;;;;;;;;GASG;AAEI,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,SAA+B;IAChE,YAAY,UAAkB,sBAAsB,CAAC,IAAI;QACvD,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;OAWG;IACI,SAAS,CACd,KAAU,EACV,OAA6B,EAC7B,QAAwB;QAExB,IAAI,uBAA4B,CAAC;QACjC,IAAI,CAAC;YACH,uBAAuB,GAAG,QAAQ,CAAC,gBAAgB,CACjD,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAC7B,CAAC;QACJ,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;QACpD,CAAC;QAED,OAAO,OAAO,CAAC,KAAK,EAAE,uBAAuB,CAAC;YAC5C,CAAC,CAAC,IAAI,CAAC,UAAU,CACb,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAC/B,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAC9C;YACH,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;CACF,CAAA;AAtCY,aAAa;IADzB,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC;;GAClB,aAAa,CAsCzB"}
1
+ {"version":3,"file":"DiffValidator.js","sourceRoot":"","sources":["../../../../src/validation/Validators/DiffValidator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,uBAAoB;AACxC,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,uBAAoB;AACrE,OAAO,EAAE,SAAS,EAAE,wBAAqB;AAEzC,OAAO,EAAE,OAAO,EAAE,kCAA6B;AAG/C;;;;;;;;;GASG;AAEI,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,SAA+B;IAChE,YAAY,UAAkB,sBAAsB,CAAC,IAAI;QACvD,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;OAWG;IACI,SAAS,CACd,KAAU,EACV,OAA6B,EAC7B,QAAwB;QAExB,IAAI,uBAA4B,CAAC;QACjC,IAAI,CAAC;YACH,uBAAuB,GAAG,QAAQ,CAAC,gBAAgB,CACjD,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAC7B,CAAC;QACJ,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;QACpD,CAAC;QAED,OAAO,OAAO,CAAC,KAAK,EAAE,uBAAuB,CAAC;YAC5C,CAAC,CAAC,IAAI,CAAC,UAAU,CACb,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAC/B,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAC9C;YACH,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;CACF,CAAA;AAtCY,aAAa;IADzB,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC;;GAClB,aAAa,CAsCzB"}
@@ -10,7 +10,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  import { Validator } from "./Validator.js";
11
11
  import { DEFAULT_ERROR_MESSAGES, ValidationKeys } from "./constants.js";
12
12
  import { validator } from "./decorators.js";
13
- import { isEqual } from "@decaf-ts/reflection";
13
+ import { isEqual } from "./../../utils/equality.js";
14
14
  /**
15
15
  * @summary Equals Validator
16
16
  *
@@ -1 +1 @@
1
- {"version":3,"file":"EqualsValidator.js","sourceRoot":"","sources":["../../../../src/validation/Validators/EqualsValidator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,uBAAoB;AACxC,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,uBAAoB;AACrE,OAAO,EAAE,SAAS,EAAE,wBAAqB;AAEzC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C;;;;;;;;;GASG;AAEI,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,SAAiC;IACpE,YAAY,UAAkB,sBAAsB,CAAC,MAAM;QACzD,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;OAWG;IACI,SAAS,CACd,KAAU,EACV,OAA+B,EAC/B,QAAwB;QAExB,IAAI,uBAA4B,CAAC;QACjC,IAAI,CAAC;YACH,uBAAuB,GAAG,QAAQ,CAAC,gBAAgB,CACjD,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAC/B,CAAC;QACJ,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;QACpD,CAAC;QAED,OAAO,OAAO,CAAC,KAAK,EAAE,uBAAuB,CAAC;YAC5C,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,CAAC,UAAU,CACb,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAC/B,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAChD,CAAC;IACR,CAAC;CACF,CAAA;AAtCY,eAAe;IAD3B,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC;;GACpB,eAAe,CAsC3B;;AAED,wBAAwB;AACxB,gCAAgC;AAChC,0CAA0C;AAC1C,iBAAiB;AACjB,6BAA6B"}
1
+ {"version":3,"file":"EqualsValidator.js","sourceRoot":"","sources":["../../../../src/validation/Validators/EqualsValidator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,uBAAoB;AACxC,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,uBAAoB;AACrE,OAAO,EAAE,SAAS,EAAE,wBAAqB;AAEzC,OAAO,EAAE,OAAO,EAAE,kCAA6B;AAG/C;;;;;;;;;GASG;AAEI,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,SAAiC;IACpE,YAAY,UAAkB,sBAAsB,CAAC,MAAM;QACzD,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;OAWG;IACI,SAAS,CACd,KAAU,EACV,OAA+B,EAC/B,QAAwB;QAExB,IAAI,uBAA4B,CAAC;QACjC,IAAI,CAAC;YACH,uBAAuB,GAAG,QAAQ,CAAC,gBAAgB,CACjD,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAC/B,CAAC;QACJ,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;QACpD,CAAC;QAED,OAAO,OAAO,CAAC,KAAK,EAAE,uBAAuB,CAAC;YAC5C,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,CAAC,UAAU,CACb,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAC/B,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAChD,CAAC;IACR,CAAC;CACF,CAAA;AAtCY,eAAe;IAD3B,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC;;GACpB,eAAe,CAsC3B;;AAED,wBAAwB;AACxB,gCAAgC;AAChC,0CAA0C;AAC1C,iBAAiB;AACjB,6BAA6B"}
@@ -11,7 +11,7 @@ import { Validator } from "./Validator.js";
11
11
  import { DEFAULT_ERROR_MESSAGES, ValidationKeys } from "./constants.js";
12
12
  import { validator } from "./decorators.js";
13
13
  import { isGreaterThan, isValidForGteOrLteComparison } from "./utils.js";
14
- import { isEqual } from "@decaf-ts/reflection";
14
+ import { isEqual } from "./../../utils/equality.js";
15
15
  /**
16
16
  * @summary Greater Than or Equal Validator
17
17
  *
@@ -1 +1 @@
1
- {"version":3,"file":"GreaterThanOrEqualValidator.js","sourceRoot":"","sources":["../../../../src/validation/Validators/GreaterThanOrEqualValidator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,uBAAoB;AACxC,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,uBAAoB;AACrE,OAAO,EAAE,SAAS,EAAE,wBAAqB;AAEzC,OAAO,EAAE,aAAa,EAAE,4BAA4B,EAAE,mBAAgB;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C;;;;;;;;;GASG;AAEI,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,SAA6C;IAC5F,YAAY,UAAkB,sBAAsB,CAAC,qBAAqB;QACxE,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;OAWG;IACI,SAAS,CACd,KAAU,EACV,OAA2C,EAC3C,QAAwB;QAExB,IAAI,uBAA4B,CAAC;QACjC,IAAI,CAAC;YACH,uBAAuB,GAAG,QAAQ,CAAC,gBAAgB,CACjD,OAAO,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAC9C,CAAC;QACJ,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,CAAC;YACH,IACE,CAAC,4BAA4B,CAAC,KAAK,EAAE,uBAAuB,CAAC;gBAC3D,OAAO,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;gBAC1C,aAAa,CAAC,KAAK,EAAE,uBAAuB,CAAC;gBAE7C,OAAO,SAAS,CAAC;YAEnB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,UAAU,CACpB,CAAC,CAAC,OAAO,EACT,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAC/D,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAA;AA/CY,2BAA2B;IADvC,SAAS,CAAC,cAAc,CAAC,qBAAqB,CAAC;;GACnC,2BAA2B,CA+CvC"}
1
+ {"version":3,"file":"GreaterThanOrEqualValidator.js","sourceRoot":"","sources":["../../../../src/validation/Validators/GreaterThanOrEqualValidator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,uBAAoB;AACxC,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,uBAAoB;AACrE,OAAO,EAAE,SAAS,EAAE,wBAAqB;AAEzC,OAAO,EAAE,aAAa,EAAE,4BAA4B,EAAE,mBAAgB;AACtE,OAAO,EAAE,OAAO,EAAE,kCAA6B;AAG/C;;;;;;;;;GASG;AAEI,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,SAA6C;IAC5F,YAAY,UAAkB,sBAAsB,CAAC,qBAAqB;QACxE,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;OAWG;IACI,SAAS,CACd,KAAU,EACV,OAA2C,EAC3C,QAAwB;QAExB,IAAI,uBAA4B,CAAC;QACjC,IAAI,CAAC;YACH,uBAAuB,GAAG,QAAQ,CAAC,gBAAgB,CACjD,OAAO,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAC9C,CAAC;QACJ,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,CAAC;YACH,IACE,CAAC,4BAA4B,CAAC,KAAK,EAAE,uBAAuB,CAAC;gBAC3D,OAAO,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;gBAC1C,aAAa,CAAC,KAAK,EAAE,uBAAuB,CAAC;gBAE7C,OAAO,SAAS,CAAC;YAEnB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,UAAU,CACpB,CAAC,CAAC,OAAO,EACT,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAC/D,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAA;AA/CY,2BAA2B;IADvC,SAAS,CAAC,cAAc,CAAC,qBAAqB,CAAC;;GACnC,2BAA2B,CA+CvC"}
@@ -11,7 +11,7 @@ import { Validator } from "./Validator.js";
11
11
  import { DEFAULT_ERROR_MESSAGES, ValidationKeys } from "./constants.js";
12
12
  import { validator } from "./decorators.js";
13
13
  import { isLessThan, isValidForGteOrLteComparison } from "./utils.js";
14
- import { isEqual } from "@decaf-ts/reflection";
14
+ import { isEqual } from "./../../utils/equality.js";
15
15
  /**
16
16
  * @summary Less Than or Equal Validator
17
17
  *
@@ -1 +1 @@
1
- {"version":3,"file":"LessThanOrEqualValidator.js","sourceRoot":"","sources":["../../../../src/validation/Validators/LessThanOrEqualValidator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,uBAAoB;AACxC,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,uBAAoB;AACrE,OAAO,EAAE,SAAS,EAAE,wBAAqB;AAEzC,OAAO,EAAE,UAAU,EAAE,4BAA4B,EAAE,mBAAgB;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C;;;;;;;;;GASG;AAEI,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,SAA0C;IACtF,YAAY,UAAkB,sBAAsB,CAAC,kBAAkB;QACrE,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;OAWG;IACI,SAAS,CACd,KAAU,EACV,OAAwC,EACxC,QAAwB;QAExB,IAAI,uBAA4B,CAAC;QACjC,IAAI,CAAC;YACH,uBAAuB,GAAG,QAAQ,CAAC,gBAAgB,CACjD,OAAO,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAC3C,CAAC;QACJ,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,CAAC;YACH,IACE,CAAC,4BAA4B,CAAC,KAAK,EAAE,uBAAuB,CAAC;gBAC3D,OAAO,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;gBAC1C,UAAU,CAAC,KAAK,EAAE,uBAAuB,CAAC;gBAE1C,OAAO,SAAS,CAAC;YAEnB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,UAAU,CACpB,CAAC,CAAC,OAAO,EACT,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAC5D,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAA;AA/CY,wBAAwB;IADpC,SAAS,CAAC,cAAc,CAAC,kBAAkB,CAAC;;GAChC,wBAAwB,CA+CpC"}
1
+ {"version":3,"file":"LessThanOrEqualValidator.js","sourceRoot":"","sources":["../../../../src/validation/Validators/LessThanOrEqualValidator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,uBAAoB;AACxC,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,uBAAoB;AACrE,OAAO,EAAE,SAAS,EAAE,wBAAqB;AAEzC,OAAO,EAAE,UAAU,EAAE,4BAA4B,EAAE,mBAAgB;AACnE,OAAO,EAAE,OAAO,EAAE,kCAA6B;AAG/C;;;;;;;;;GASG;AAEI,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,SAA0C;IACtF,YAAY,UAAkB,sBAAsB,CAAC,kBAAkB;QACrE,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;OAWG;IACI,SAAS,CACd,KAAU,EACV,OAAwC,EACxC,QAAwB;QAExB,IAAI,uBAA4B,CAAC;QACjC,IAAI,CAAC;YACH,uBAAuB,GAAG,QAAQ,CAAC,gBAAgB,CACjD,OAAO,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAC3C,CAAC;QACJ,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,CAAC;YACH,IACE,CAAC,4BAA4B,CAAC,KAAK,EAAE,uBAAuB,CAAC;gBAC3D,OAAO,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;gBAC1C,UAAU,CAAC,KAAK,EAAE,uBAAuB,CAAC;gBAE1C,OAAO,SAAS,CAAC;YAEnB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,UAAU,CACpB,CAAC,CAAC,OAAO,EACT,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAC5D,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAA;AA/CY,wBAAwB;IADpC,SAAS,CAAC,cAAc,CAAC,kBAAkB,CAAC;;GAChC,wBAAwB,CA+CpC"}
@@ -80,20 +80,20 @@ let ListValidator = class ListValidator extends Validator {
80
80
  const clazz = (Array.isArray(options.clazz) ? options.clazz : [options.clazz]).map((c) => {
81
81
  if (typeof c === "string")
82
82
  return c;
83
- if (!c.name)
83
+ if (!c?.name && typeof c === "function")
84
84
  return c().name;
85
- return c.name;
85
+ return c?.name;
86
86
  });
87
87
  let val, isValid = true;
88
88
  for (let i = 0; i < (Array.isArray(value) ? value.length : value.size); i++) {
89
- val = value[i];
89
+ val = [...value][i];
90
90
  switch (typeof val) {
91
91
  case "object":
92
92
  case "function":
93
93
  isValid = clazz.includes((val ?? {}).constructor?.name); // null is an object
94
94
  break;
95
95
  default:
96
- isValid = clazz.some((c) => typeof val === c.toLowerCase());
96
+ isValid = clazz.some((c) => typeof val === c?.toLowerCase());
97
97
  break;
98
98
  }
99
99
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ListValidator.js","sourceRoot":"","sources":["../../../../src/validation/Validators/ListValidator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,uBAAoB;AACxC,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,uBAAoB;AACrE,OAAO,EAAE,SAAS,EAAE,wBAAqB;AAIzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEI,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,SAA+B;IAChE,YAAY,UAAkB,sBAAsB,CAAC,IAAI;QACvD,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,SAAS,CACP,KAAuB,EACvB,OAA6B;QAE7B,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,OAAO;QAE3E,MAAM,KAAK,GAAG,CACZ,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAC/D,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACV,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,OAAO,CAAC,CAAC;YACpC,IAAI,CAAC,CAAC,CAAC,IAAI;gBAAE,OAAQ,CAA4B,EAAE,CAAC,IAAI,CAAC;YACzD,OAAO,CAAC,CAAC,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,IAAI,GAAQ,EACV,OAAO,GAAG,IAAI,CAAC;QACjB,KACE,IAAI,CAAC,GAAG,CAAC,EACT,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EACtD,CAAC,EAAE,EACH,CAAC;YACD,GAAG,GAAI,KAAa,CAAC,CAAC,CAAC,CAAC;YACxB,QAAQ,OAAO,GAAG,EAAE,CAAC;gBACnB,KAAK,QAAQ,CAAC;gBACd,KAAK,UAAU;oBACb,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAE,CAAC,GAAG,IAAI,EAAE,CAAY,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,oBAAoB;oBACzF,MAAM;gBACR;oBACE,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;oBACpE,MAAM;YACV,CAAC;QACH,CAAC;QAED,OAAO,OAAO;YACZ,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;CACF,CAAA;AAxDY,aAAa;IADzB,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC;;GAClB,aAAa,CAwDzB"}
1
+ {"version":3,"file":"ListValidator.js","sourceRoot":"","sources":["../../../../src/validation/Validators/ListValidator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,uBAAoB;AACxC,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,uBAAoB;AACrE,OAAO,EAAE,SAAS,EAAE,wBAAqB;AAIzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAEI,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,SAA+B;IAChE,YAAY,UAAkB,sBAAsB,CAAC,IAAI;QACvD,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,SAAS,CACP,KAAuB,EACvB,OAA6B;QAE7B,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,OAAO;QAE3E,MAAM,KAAK,GAAG,CACZ,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAC/D,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACV,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,OAAO,CAAC,CAAC;YACpC,IAAI,CAAC,CAAC,EAAE,IAAI,IAAI,OAAO,CAAC,KAAK,UAAU;gBACrC,OAAQ,CAA4B,EAAE,CAAC,IAAI,CAAC;YAC9C,OAAO,CAAC,EAAE,IAAI,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,IAAI,GAAQ,EACV,OAAO,GAAG,IAAI,CAAC;QACjB,KACE,IAAI,CAAC,GAAG,CAAC,EACT,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EACtD,CAAC,EAAE,EACH,CAAC;YACD,GAAG,GAAI,CAAC,GAAG,KAAK,CAAS,CAAC,CAAC,CAAC,CAAC;YAC7B,QAAQ,OAAO,GAAG,EAAE,CAAC;gBACnB,KAAK,QAAQ,CAAC;gBACd,KAAK,UAAU;oBACb,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAE,CAAC,GAAG,IAAI,EAAE,CAAY,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,oBAAoB;oBACzF,MAAM;gBACR;oBACE,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;oBACrE,MAAM;YACV,CAAC;QACH,CAAC;QAED,OAAO,OAAO;YACZ,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;CACF,CAAA;AAzDY,aAAa;IADzB,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC;;GAClB,aAAa,CAyDzB"}
@@ -10,6 +10,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  import { Validator } from "./Validator.js";
11
11
  import { ValidationKeys, DEFAULT_ERROR_MESSAGES } from "./constants.js";
12
12
  import { validator } from "./decorators.js";
13
+ import { valueLength } from "./utils.js";
13
14
  /**
14
15
  * @summary Maximum Length Validator
15
16
  * @description Validates strings and Arrays on their maximum length
@@ -23,7 +24,7 @@ import { validator } from "./decorators.js";
23
24
  */
24
25
  let MaxLengthValidator = class MaxLengthValidator extends Validator {
25
26
  constructor(message = DEFAULT_ERROR_MESSAGES.MAX_LENGTH) {
26
- super(message, String.name, Array.name);
27
+ super(message, String.name, Array.name, Set.name, Map.name);
27
28
  }
28
29
  /**
29
30
  * @summary Validates a model
@@ -40,7 +41,7 @@ let MaxLengthValidator = class MaxLengthValidator extends Validator {
40
41
  hasErrors(value, options) {
41
42
  if (typeof value === "undefined")
42
43
  return;
43
- return value.length > options.maxlength
44
+ return valueLength(value) > options.maxlength
44
45
  ? this.getMessage(options.message || this.message, options.maxlength)
45
46
  : undefined;
46
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MaxLengthValidator.js","sourceRoot":"","sources":["../../../../src/validation/Validators/MaxLengthValidator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,uBAAoB;AACxC,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,uBAAoB;AACrE,OAAO,EAAE,SAAS,EAAE,wBAAqB;AAGzC;;;;;;;;;;GAUG;AAEI,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,SAAoC;IAC1E,YAAY,UAAkB,sBAAsB,CAAC,UAAU;QAC7D,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;;;;;;;OAWG;IACI,SAAS,CACd,KAAqB,EACrB,OAAkC;QAElC,IAAI,OAAO,KAAK,KAAK,WAAW;YAAE,OAAO;QACzC,OAAO,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,SAAS;YACrC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC;YACrE,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;CACF,CAAA;AA1BY,kBAAkB;IAD9B,SAAS,CAAC,cAAc,CAAC,UAAU,CAAC;;GACxB,kBAAkB,CA0B9B"}
1
+ {"version":3,"file":"MaxLengthValidator.js","sourceRoot":"","sources":["../../../../src/validation/Validators/MaxLengthValidator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,uBAAoB;AACxC,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,uBAAoB;AACrE,OAAO,EAAE,SAAS,EAAE,wBAAqB;AAEzC,OAAO,EAAE,WAAW,EAAE,mBAAgB;AAEtC;;;;;;;;;;GAUG;AAEI,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,SAAoC;IAC1E,YAAY,UAAkB,sBAAsB,CAAC,UAAU;QAC7D,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;;;;;;OAWG;IACI,SAAS,CACd,KAAqB,EACrB,OAAkC;QAElC,IAAI,OAAO,KAAK,KAAK,WAAW;YAAE,OAAO;QACzC,OAAO,WAAW,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,SAAS;YAC3C,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC;YACrE,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;CACF,CAAA;AA1BY,kBAAkB;IAD9B,SAAS,CAAC,cAAc,CAAC,UAAU,CAAC;;GACxB,kBAAkB,CA0B9B"}
@@ -64,7 +64,7 @@ import { validator } from "./decorators.js";
64
64
  */
65
65
  let MaxValidator = class MaxValidator extends Validator {
66
66
  constructor(message = DEFAULT_ERROR_MESSAGES.MAX) {
67
- super(message, "number", "Date", "string");
67
+ super(message, Number.name, Date.name, String.name);
68
68
  }
69
69
  /**
70
70
  * @description Checks if a value is less than or equal to a maximum
@@ -1 +1 @@
1
- {"version":3,"file":"MaxValidator.js","sourceRoot":"","sources":["../../../../src/validation/Validators/MaxValidator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,uBAAoB;AACxC,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,uBAAoB;AACrE,OAAO,EAAE,SAAS,EAAE,wBAAqB;AAGzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEI,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,SAA8B;IAC9D,YAAY,UAAkB,sBAAsB,CAAC,GAAG;QACtD,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACI,SAAS,CACd,KAA6B,EAC7B,OAA4B;QAE5B,IAAI,OAAO,KAAK,KAAK,WAAW;YAAE,OAAO;QAEzC,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;QACtB,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,CAAC,GAAG,YAAY,IAAI,CAAC,EAAE,CAAC;YACpD,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;YACpB,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,KAAK,GAAG,GAAG;YAChB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC;YACvD,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;CACF,CAAA;AAtCY,YAAY;IADxB,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC;;GACjB,YAAY,CAsCxB"}
1
+ {"version":3,"file":"MaxValidator.js","sourceRoot":"","sources":["../../../../src/validation/Validators/MaxValidator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,uBAAoB;AACxC,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,uBAAoB;AACrE,OAAO,EAAE,SAAS,EAAE,wBAAqB;AAGzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEI,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,SAA8B;IAC9D,YAAY,UAAkB,sBAAsB,CAAC,GAAG;QACtD,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACI,SAAS,CACd,KAA6B,EAC7B,OAA4B;QAE5B,IAAI,OAAO,KAAK,KAAK,WAAW;YAAE,OAAO;QAEzC,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;QACtB,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,CAAC,GAAG,YAAY,IAAI,CAAC,EAAE,CAAC;YACpD,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;YACpB,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,KAAK,GAAG,GAAG;YAChB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC;YACvD,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;CACF,CAAA;AAtCY,YAAY;IADxB,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC;;GACjB,YAAY,CAsCxB"}
@@ -10,6 +10,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  import { Validator } from "./Validator.js";
11
11
  import { DEFAULT_ERROR_MESSAGES, ValidationKeys } from "./constants.js";
12
12
  import { validator } from "./decorators.js";
13
+ import { valueLength } from "./utils.js";
13
14
  /**
14
15
  * @summary Minimum Length Validator
15
16
  * @description Validates strings and Arrays on their minimum length
@@ -23,7 +24,7 @@ import { validator } from "./decorators.js";
23
24
  */
24
25
  let MinLengthValidator = class MinLengthValidator extends Validator {
25
26
  constructor(message = DEFAULT_ERROR_MESSAGES.MIN_LENGTH) {
26
- super(message, String.name, Array.name);
27
+ super(message, String.name, Array.name, Set.name, Map.name);
27
28
  }
28
29
  /**
29
30
  *
@@ -40,7 +41,7 @@ let MinLengthValidator = class MinLengthValidator extends Validator {
40
41
  hasErrors(value, options) {
41
42
  if (typeof value === "undefined")
42
43
  return;
43
- return value.length < options.minlength
44
+ return valueLength(value) < options.minlength
44
45
  ? this.getMessage(options.message || this.message, options.minlength)
45
46
  : undefined;
46
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MinLengthValidator.js","sourceRoot":"","sources":["../../../../src/validation/Validators/MinLengthValidator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,uBAAoB;AACxC,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,uBAAoB;AACrE,OAAO,EAAE,SAAS,EAAE,wBAAqB;AAGzC;;;;;;;;;;GAUG;AAEI,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,SAAoC;IAC1E,YAAY,UAAkB,sBAAsB,CAAC,UAAU;QAC7D,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;;;;;;;OAWG;IACI,SAAS,CACd,KAAqB,EACrB,OAAkC;QAElC,IAAI,OAAO,KAAK,KAAK,WAAW;YAAE,OAAO;QACzC,OAAO,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,SAAS;YACrC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC;YACrE,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;CACF,CAAA;AA1BY,kBAAkB;IAD9B,SAAS,CAAC,cAAc,CAAC,UAAU,CAAC;;GACxB,kBAAkB,CA0B9B"}
1
+ {"version":3,"file":"MinLengthValidator.js","sourceRoot":"","sources":["../../../../src/validation/Validators/MinLengthValidator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,uBAAoB;AACxC,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,uBAAoB;AACrE,OAAO,EAAE,SAAS,EAAE,wBAAqB;AAEzC,OAAO,EAAE,WAAW,EAAE,mBAAgB;AAEtC;;;;;;;;;;GAUG;AAEI,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,SAAoC;IAC1E,YAAY,UAAkB,sBAAsB,CAAC,UAAU;QAC7D,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;;;;;;OAWG;IACI,SAAS,CACd,KAAqB,EACrB,OAAkC;QAElC,IAAI,OAAO,KAAK,KAAK,WAAW;YAAE,OAAO;QACzC,OAAO,WAAW,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,SAAS;YAC3C,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC;YACrE,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;CACF,CAAA;AA1BY,kBAAkB;IAD9B,SAAS,CAAC,cAAc,CAAC,UAAU,CAAC;;GACxB,kBAAkB,CA0B9B"}
@@ -64,7 +64,7 @@ import { validator } from "./decorators.js";
64
64
  */
65
65
  let MinValidator = class MinValidator extends Validator {
66
66
  constructor(message = DEFAULT_ERROR_MESSAGES.MIN) {
67
- super(message, "number", "Date", "string");
67
+ super(message, Number.name, Date.name, String.name);
68
68
  }
69
69
  /**
70
70
  * @description Checks if a value is greater than or equal to a minimum
@@ -1 +1 @@
1
- {"version":3,"file":"MinValidator.js","sourceRoot":"","sources":["../../../../src/validation/Validators/MinValidator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,uBAAoB;AACxC,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,uBAAoB;AACrE,OAAO,EAAE,SAAS,EAAE,wBAAqB;AAGzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEI,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,SAA8B;IAC9D,YAAY,UAAkB,sBAAsB,CAAC,GAAG;QACtD,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACI,SAAS,CACd,KAA6B,EAC7B,OAA4B;QAE5B,IAAI,OAAO,KAAK,KAAK,WAAW;YAAE,OAAO;QAEzC,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;QACtB,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,CAAC,GAAG,YAAY,IAAI,CAAC,EAAE,CAAC;YACpD,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;YACpB,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,KAAK,GAAG,GAAG;YAChB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC;YACvD,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;CACF,CAAA;AArCY,YAAY;IADxB,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC;;GACjB,YAAY,CAqCxB"}
1
+ {"version":3,"file":"MinValidator.js","sourceRoot":"","sources":["../../../../src/validation/Validators/MinValidator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,uBAAoB;AACxC,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,uBAAoB;AACrE,OAAO,EAAE,SAAS,EAAE,wBAAqB;AAGzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEI,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,SAA8B;IAC9D,YAAY,UAAkB,sBAAsB,CAAC,GAAG;QACtD,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACI,SAAS,CACd,KAA6B,EAC7B,OAA4B;QAE5B,IAAI,OAAO,KAAK,KAAK,WAAW;YAAE,OAAO;QAEzC,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;QACtB,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,CAAC,GAAG,YAAY,IAAI,CAAC,EAAE,CAAC;YACpD,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;YACpB,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,KAAK,GAAG,GAAG;YAChB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC;YACvD,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;CACF,CAAA;AArCY,YAAY;IADxB,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC;;GACjB,YAAY,CAqCxB"}
@@ -0,0 +1,29 @@
1
+ import { Validator } from "./Validator";
2
+ import { EnumValidatorOptions } from "../types";
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,61 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Validator } from "./Validator.js";
11
+ import { DEFAULT_ERROR_MESSAGES, ValidationKeys } from "./constants.js";
12
+ import { validator } from "./decorators.js";
13
+ /**
14
+ * @summary Option Validator
15
+ * @description Validates properties against an object or a list of accepted values
16
+ *
17
+ * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#ENUM}
18
+ *
19
+ * @class OptionValidator
20
+ * @extends Validator
21
+ *
22
+ * @category Validators
23
+ */
24
+ let OptionValidator = class OptionValidator extends Validator {
25
+ constructor(message = DEFAULT_ERROR_MESSAGES.ENUM) {
26
+ super(message);
27
+ }
28
+ /**
29
+ *
30
+ * @param {any[] | Record<any, any>} value
31
+ * @param {EnumValidatorOptions} options
32
+ *
33
+ * @return {string | undefined}
34
+ *
35
+ * @memberOf module:decorator-validation
36
+ * @override
37
+ *
38
+ * @see Validator#hasErrors
39
+ */
40
+ hasErrors(value, options) {
41
+ if (typeof value === "undefined")
42
+ return;
43
+ if (Array.isArray(options.enum))
44
+ return !options.enum.includes(value)
45
+ ? this.getMessage(options.message || this.message, options.enum)
46
+ : undefined;
47
+ if (typeof options.enum === "object") {
48
+ const keys = Object.keys(options.enum);
49
+ for (const key of keys)
50
+ if (options.enum[key] === value)
51
+ return undefined;
52
+ return this.getMessage(options.message || this.message, Object.values(options.enum));
53
+ }
54
+ }
55
+ };
56
+ OptionValidator = __decorate([
57
+ validator(ValidationKeys.ENUM),
58
+ __metadata("design:paramtypes", [String])
59
+ ], OptionValidator);
60
+ export { OptionValidator };
61
+ //# sourceMappingURL=OptionValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OptionValidator.js","sourceRoot":"","sources":["../../../../src/validation/Validators/OptionValidator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,uBAAoB;AACxC,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,uBAAoB;AACrE,OAAO,EAAE,SAAS,EAAE,wBAAqB;AAGzC;;;;;;;;;;GAUG;AAEI,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,SAA+B;IAClE,YAAY,UAAkB,sBAAsB,CAAC,IAAI;QACvD,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;OAWG;IACI,SAAS,CACd,KAAU,EACV,OAA6B;QAE7B,IAAI,OAAO,KAAK,KAAK,WAAW;YAAE,OAAO;QAEzC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;YAC7B,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAClC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC;gBAChE,CAAC,CAAC,SAAS,CAAC;QAChB,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACvC,KAAK,MAAM,GAAG,IAAI,IAAI;gBACpB,IAAK,OAAO,CAAC,IAAY,CAAC,GAAG,CAAC,KAAK,KAAK;oBAAE,OAAO,SAAS,CAAC;YAC7D,OAAO,IAAI,CAAC,UAAU,CACpB,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAC/B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAC5B,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAA;AArCY,eAAe;IAD3B,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC;;GAClB,eAAe,CAqC3B"}
@@ -12,7 +12,7 @@ import { DEFAULT_ERROR_MESSAGES, ValidationKeys } from "./constants.js";
12
12
  import { validator } from "./decorators.js";
13
13
  import { Validation } from "./../Validation.js";
14
14
  import { ModelKeys } from "./../../utils/constants.js";
15
- import { Reflection } from "@decaf-ts/reflection";
15
+ import { evaluateDesignTypes } from "./utils.js";
16
16
  /**
17
17
  * @description Validator for checking if a value is of the expected type(s)
18
18
  * @summary The TypeValidator ensures that a value matches one of the specified types.
@@ -102,7 +102,7 @@ let TypeValidator = class TypeValidator extends Validator {
102
102
  t = t();
103
103
  return t.name || t;
104
104
  });
105
- if (!Reflection.evaluateDesignTypes(value, ts))
105
+ if (!evaluateDesignTypes(value, ts))
106
106
  return this.getMessage(message || this.message, typeof ts === "string" ? ts : Array.isArray(ts) ? ts.join(", ") : ts, typeof value);
107
107
  }
108
108
  };
@@ -1 +1 @@
1
- {"version":3,"file":"TypeValidator.js","sourceRoot":"","sources":["../../../../src/validation/Validators/TypeValidator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,uBAAoB;AACxC,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,uBAAoB;AACrE,OAAO,EAAE,SAAS,EAAE,wBAAqB;AACzC,OAAO,EAAE,UAAU,EAAE,2BAAsB;AAM3C,OAAO,EAAE,SAAS,EAAE,mCAA8B;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AAEI,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,SAA+B;IAChE,YAAY,UAAkB,sBAAsB,CAAC,IAAI;QACvD,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACI,SAAS,CACd,KAAU,EACV,OAA6B;QAE7B,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,CAAC,0CAA0C;QAE3E,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;QAE/C,IAAI,EAAE,GAAG,WAAW,IAAI,IAAI,CAAC;QAC7B,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC7C,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,OAAO,CAAC,CAAC;YACpC,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,CAAC,CAAC,IAAI;gBAAE,CAAC,GAAI,CAAkB,EAAE,CAAC;YAClE,OAAQ,CAAS,CAAC,IAAI,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,KAAK,EAAE,EAAS,CAAC;YACnD,OAAO,IAAI,CAAC,UAAU,CACpB,OAAO,IAAI,IAAI,CAAC,OAAO,EACvB,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EACpE,OAAO,KAAK,CACb,CAAC;IACN,CAAC;CACF,CAAA;AA1CY,aAAa;IADzB,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC;;GAClB,aAAa,CA0CzB;;AAED;;;;;;;GAOG;AACH,UAAU,CAAC,QAAQ,CAAC;IAClB,SAAS,EAAE,aAAiC;IAC5C,aAAa,EAAE,SAAS,CAAC,IAAI;IAC7B,IAAI,EAAE,KAAK;CACW,CAAC,CAAC"}
1
+ {"version":3,"file":"TypeValidator.js","sourceRoot":"","sources":["../../../../src/validation/Validators/TypeValidator.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,uBAAoB;AACxC,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,uBAAoB;AACrE,OAAO,EAAE,SAAS,EAAE,wBAAqB;AACzC,OAAO,EAAE,UAAU,EAAE,2BAAsB;AAM3C,OAAO,EAAE,SAAS,EAAE,mCAA8B;AAClD,OAAO,EAAE,mBAAmB,EAAE,mBAAgB;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AAEI,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,SAA+B;IAChE,YAAY,UAAkB,sBAAsB,CAAC,IAAI;QACvD,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACI,SAAS,CACd,KAAU,EACV,OAA6B;QAE7B,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,CAAC,0CAA0C;QAE3E,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;QAE/C,IAAI,EAAE,GAAG,WAAW,IAAI,IAAI,CAAC;QAC7B,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC7C,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,OAAO,CAAC,CAAC;YACpC,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,CAAC,CAAC,IAAI;gBAAE,CAAC,GAAI,CAAkB,EAAE,CAAC;YAClE,OAAQ,CAAS,CAAC,IAAI,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,EAAS,CAAC;YACxC,OAAO,IAAI,CAAC,UAAU,CACpB,OAAO,IAAI,IAAI,CAAC,OAAO,EACvB,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EACpE,OAAO,KAAK,CACb,CAAC;IACN,CAAC;CACF,CAAA;AA1CY,aAAa;IADzB,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC;;GAClB,aAAa,CA0CzB;;AAED;;;;;;;GAOG;AACH,UAAU,CAAC,QAAQ,CAAC;IAClB,SAAS,EAAE,aAAiC;IAC5C,aAAa,EAAE,SAAS,CAAC,IAAI;IAC7B,IAAI,EAAE,KAAK;CACW,CAAC,CAAC"}
@@ -63,7 +63,7 @@ export declare const ValidationKeys: {
63
63
  readonly LESS_THAN_OR_EQUAL: "lessThanOrEqual";
64
64
  readonly GREATER_THAN: "greaterThan";
65
65
  readonly GREATER_THAN_OR_EQUAL: "greaterThanOrEqual";
66
- readonly REFLECT: "decaf.model.validation.";
66
+ readonly REFLECT: "validation";
67
67
  readonly DATE: "date";
68
68
  readonly EMAIL: "email";
69
69
  readonly FORMAT: "format";
@@ -80,6 +80,7 @@ export declare const ValidationKeys: {
80
80
  readonly UNIQUE: "unique";
81
81
  readonly URL: "url";
82
82
  readonly VALIDATOR: "validator";
83
+ readonly ENUM: "enum";
83
84
  };
84
85
  /**
85
86
  * @description list of month names
@@ -1,4 +1,3 @@
1
- import { ModelKeys } from "./../../utils/constants.js";
2
1
  /**
3
2
  * @description Object-like set of keys used for comparison-based validations.
4
3
  * @summary Provides canonical names for validators that compare two values (equality and ordering checks).
@@ -58,7 +57,7 @@ export const ComparisonValidationKeys = {
58
57
  * @type {ValidationKeysDef}
59
58
  */
60
59
  export const ValidationKeys = {
61
- REFLECT: `${ModelKeys.REFLECT}validation.`,
60
+ REFLECT: `validation`,
62
61
  DATE: "date",
63
62
  EMAIL: "email",
64
63
  FORMAT: "format",
@@ -75,6 +74,7 @@ export const ValidationKeys = {
75
74
  UNIQUE: "unique",
76
75
  URL: "url",
77
76
  VALIDATOR: "validator",
77
+ ENUM: "enum",
78
78
  ...ComparisonValidationKeys,
79
79
  };
80
80
  /**
@@ -167,6 +167,7 @@ export const DEFAULT_ERROR_MESSAGES = {
167
167
  GREATER_THAN: "This field must be greater than field {0}",
168
168
  GREATER_THAN_OR_EQUAL: "This field must be greater than or equal to field {0}",
169
169
  UNIQUE: "Duplicate found, this field must be unique.",
170
+ ENUM: "Value is not allowed. Must be one of {0}",
170
171
  };
171
172
  /**
172
173
  * @description Type definition for default regular expression patterns used in validation.
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/validation/Validators/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,mCAA8B;AAElD;;;;;;;;;;;GAWG;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,WAAW;IACjB,SAAS,EAAE,UAAU;IACrB,kBAAkB,EAAE,iBAAiB;IACrC,YAAY,EAAE,aAAa;IAC3B,qBAAqB,EAAE,oBAAoB;CACnC,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,aAAa;IAC1C,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,UAAU,EAAE,WAAW;IACvB,GAAG,EAAE,KAAK;IACV,UAAU,EAAE,WAAW;IACvB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,GAAG,EAAE,KAAK;IACV,SAAS,EAAE,WAAW;IACtB,GAAG,wBAAwB;CACnB,CAAC;AAEX;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,SAAS;IACT,UAAU;IACV,OAAO;IACP,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,QAAQ;IACR,WAAW;IACX,SAAS;IACT,UAAU;IACV,UAAU;CACX,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,WAAW;IACX,UAAU;IACV,QAAQ;IACR,UAAU;CACX,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAA2B;IAC5D,QAAQ,EAAE,wBAAwB;IAClC,GAAG,EAAE,0BAA0B;IAC/B,GAAG,EAAE,0BAA0B;IAC/B,UAAU,EAAE,2BAA2B;IACvC,UAAU,EAAE,2BAA2B;IACvC,OAAO,EAAE,sCAAsC;IAC/C,KAAK,EAAE,gCAAgC;IACvC,GAAG,EAAE,8BAA8B;IACnC,IAAI,EAAE,0CAA0C;IAChD,IAAI,EAAE,kCAAkC;IACxC,IAAI,EAAE,iCAAiC;IACvC,OAAO,EAAE,mBAAmB;IAC5B,QAAQ,EACN,4HAA4H;IAC9H,IAAI,EAAE,qBAAqB;IAC3B,eAAe,EAAE,+BAA+B;IAChD,MAAM,EAAE,uCAAuC;IAC/C,IAAI,EAAE,6CAA6C;IACnD,SAAS,EAAE,wCAAwC;IACnD,kBAAkB,EAAE,oDAAoD;IACxE,YAAY,EAAE,2CAA2C;IACzD,qBAAqB,EACnB,uDAAuD;IACzD,MAAM,EAAE,6CAA6C;CACtD,CAAC;AAEF;;;;;;;;;GASG;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,KAAK,EACH,4JAA4J;IAC9J,GAAG,EAAE,yaAAya;IAC9a,QAAQ,EAAE;QACR,iBAAiB,EACf,iFAAiF;KACpF;CACF,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/validation/Validators/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,WAAW;IACjB,SAAS,EAAE,UAAU;IACrB,kBAAkB,EAAE,iBAAiB;IACrC,YAAY,EAAE,aAAa;IAC3B,qBAAqB,EAAE,oBAAoB;CACnC,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,OAAO,EAAE,YAAY;IACrB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,UAAU,EAAE,WAAW;IACvB,GAAG,EAAE,KAAK;IACV,UAAU,EAAE,WAAW;IACvB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,GAAG,EAAE,KAAK;IACV,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,MAAM;IACZ,GAAG,wBAAwB;CACnB,CAAC;AAEX;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,SAAS;IACT,UAAU;IACV,OAAO;IACP,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,QAAQ;IACR,WAAW;IACX,SAAS;IACT,UAAU;IACV,UAAU;CACX,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,WAAW;IACX,UAAU;IACV,QAAQ;IACR,UAAU;CACX,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAA2B;IAC5D,QAAQ,EAAE,wBAAwB;IAClC,GAAG,EAAE,0BAA0B;IAC/B,GAAG,EAAE,0BAA0B;IAC/B,UAAU,EAAE,2BAA2B;IACvC,UAAU,EAAE,2BAA2B;IACvC,OAAO,EAAE,sCAAsC;IAC/C,KAAK,EAAE,gCAAgC;IACvC,GAAG,EAAE,8BAA8B;IACnC,IAAI,EAAE,0CAA0C;IAChD,IAAI,EAAE,kCAAkC;IACxC,IAAI,EAAE,iCAAiC;IACvC,OAAO,EAAE,mBAAmB;IAC5B,QAAQ,EACN,4HAA4H;IAC9H,IAAI,EAAE,qBAAqB;IAC3B,eAAe,EAAE,+BAA+B;IAChD,MAAM,EAAE,uCAAuC;IAC/C,IAAI,EAAE,6CAA6C;IACnD,SAAS,EAAE,wCAAwC;IACnD,kBAAkB,EAAE,oDAAoD;IACxE,YAAY,EAAE,2CAA2C;IACzD,qBAAqB,EACnB,uDAAuD;IACzD,MAAM,EAAE,6CAA6C;IACrD,IAAI,EAAE,0CAA0C;CACjD,CAAC;AAEF;;;;;;;;;GASG;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,KAAK,EACH,4JAA4J;IAC9J,GAAG,EAAE,yaAAya;IAC9a,QAAQ,EAAE;QACR,iBAAiB,EACf,iFAAiF;KACpF;CACF,CAAC"}
@@ -9,4 +9,4 @@ import { Validator } from "./Validator";
9
9
  *
10
10
  * @category Class Decorators
11
11
  */
12
- export declare function validator<T extends Validator>(...keys: string[]): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor) => void;
12
+ export declare function validator<T extends Validator>(...keys: string[]): (target: object, propertyKey?: string | symbol | unknown, descriptor?: PropertyDescriptor | number) => void;
@@ -1,6 +1,6 @@
1
1
  import { Validation } from "./../Validation.js";
2
+ import { apply, metadata } from "@decaf-ts/decoration";
2
3
  import { ValidationKeys } from "./constants.js";
3
- import { apply, metadata } from "@decaf-ts/reflection";
4
4
  /**
5
5
  * @summary Marks the class as a validator for a certain key.
6
6
  * @description Registers the class in the {@link Validation} with the provided key
@@ -21,6 +21,6 @@ export function validator(...keys) {
21
21
  });
22
22
  });
23
23
  return original;
24
- }), metadata(Validation.key(ValidationKeys.VALIDATOR), keys));
24
+ }), metadata(ValidationKeys.VALIDATOR, keys));
25
25
  }
26
26
  //# sourceMappingURL=decorators.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../../src/validation/Validators/decorators.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,2BAAsB;AAE3C,OAAO,EAAE,cAAc,EAAE,uBAAoB;AAC7C,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGvD;;;;;;;;;GASG;AACH,MAAM,UAAU,SAAS,CAAsB,GAAG,IAAc;IAC9D,OAAO,KAAK,CACV,CAAC,CAAC,QAAwB,EAAE,EAAE;QAC5B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE;YACzB,UAAU,CAAC,QAAQ,CAAC;gBAClB,SAAS,EAAE,QAAQ;gBACnB,aAAa,EAAE,CAAC;gBAChB,IAAI,EAAE,IAAI;aACY,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAmB,EACpB,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CACzD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../../src/validation/Validators/decorators.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,2BAAsB;AAC3C,OAAO,EAAe,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,uBAAoB;AAG7C;;;;;;;;;GASG;AACH,MAAM,UAAU,SAAS,CAAsB,GAAG,IAAc;IAC9D,OAAO,KAAK,CACV,CAAC,CAAC,QAAwB,EAAE,EAAE;QAC5B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE;YACzB,UAAU,CAAC,QAAQ,CAAC;gBAClB,SAAS,EAAE,QAAQ;gBACnB,aAAa,EAAE,CAAC;gBAChB,IAAI,EAAE,IAAI;aACY,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAmB,EACpB,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,CACzC,CAAC;AACJ,CAAC"}
@@ -14,6 +14,7 @@ export * from "./MaxLengthValidator";
14
14
  export * from "./MaxValidator";
15
15
  export * from "./MinLengthValidator";
16
16
  export * from "./MinValidator";
17
+ export * from "./OptionValidator";
17
18
  export * from "./PasswordValidator";
18
19
  export * from "./PatternValidator";
19
20
  export * from "./RequiredValidator";
@@ -14,6 +14,7 @@ export * from "./MaxLengthValidator.js";
14
14
  export * from "./MaxValidator.js";
15
15
  export * from "./MinLengthValidator.js";
16
16
  export * from "./MinValidator.js";
17
+ export * from "./OptionValidator.js";
17
18
  export * from "./PasswordValidator.js";
18
19
  export * from "./PatternValidator.js";
19
20
  export * from "./RequiredValidator.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/validation/Validators/index.ts"],"names":[],"mappings":"AAAA,+BAA4B;AAC5B,oCAAiC;AACjC,mCAAgC;AAChC,gCAA6B;AAC7B,mCAAgC;AAChC,oCAAiC;AACjC,qCAAkC;AAClC,0CAAuC;AACvC,iDAA8C;AAC9C,uCAAoC;AACpC,8CAA2C;AAC3C,mCAAgC;AAChC,wCAAqC;AACrC,kCAA+B;AAC/B,wCAAqC;AACrC,kCAA+B;AAC/B,uCAAoC;AACpC,sCAAmC;AACnC,uCAAoC;AACpC,mCAAgC;AAChC,mCAAgC;AAChC,kCAA+B;AAC/B,+BAA4B;AAC5B,uCAAoC;AACpC,2BAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/validation/Validators/index.ts"],"names":[],"mappings":"AAAA,+BAA4B;AAC5B,oCAAiC;AACjC,mCAAgC;AAChC,gCAA6B;AAC7B,mCAAgC;AAChC,oCAAiC;AACjC,qCAAkC;AAClC,0CAAuC;AACvC,iDAA8C;AAC9C,uCAAoC;AACpC,8CAA2C;AAC3C,mCAAgC;AAChC,wCAAqC;AACrC,kCAA+B;AAC/B,wCAAqC;AACrC,kCAA+B;AAC/B,qCAAkC;AAClC,uCAAoC;AACpC,sCAAmC;AACnC,uCAAoC;AACpC,mCAAgC;AAChC,mCAAgC;AAChC,kCAA+B;AAC/B,+BAA4B;AAC5B,uCAAoC;AACpC,2BAAwB"}
@@ -40,3 +40,36 @@ export declare function isLessThan(a: any, b: any): boolean;
40
40
  * @memberOf module:decorator-validation
41
41
  */
42
42
  export declare function isGreaterThan(a: any, b: any): boolean;
43
+ /**
44
+ * @description Checks if a value matches a specified type name
45
+ * @summary Utility function to verify if a value's type matches the provided type name
46
+ * @param {unknown} value - The value to check the type of
47
+ * @param {string} acceptedType - The type name to check against
48
+ * @return {boolean} Returns true if the value matches the accepted type, false otherwise
49
+ */
50
+ export declare function checkType(value: unknown, acceptedType: string): boolean;
51
+ /**
52
+ * @description Checks if a value matches any of the specified type names
53
+ * @summary Utility function to verify if a value's type matches any of the provided type names
54
+ * @param {unknown} value - The value to check the type of
55
+ * @param {string[]} acceptedTypes - Array of type names to check against
56
+ * @return {boolean} Returns true if the value matches any of the accepted types, false otherwise
57
+ */
58
+ export declare function checkTypes(value: unknown, acceptedTypes: string[]): boolean;
59
+ /**
60
+ * @description Evaluates if a value matches the specified type metadata
61
+ * @summary Compares a value against type metadata to determine if they match
62
+ * @param {unknown} value - The value to evaluate
63
+ * @param {string | string[] | {name: string}} types - Type metadata to check against, can be a string, array of strings, or an object with a name property
64
+ * @return {boolean} Returns true if the value matches the type metadata, false otherwise
65
+ */
66
+ export declare function evaluateDesignTypes(value: unknown, types: string | string[] | {
67
+ name: string;
68
+ }): boolean;
69
+ /**
70
+ * @description Returns the length of a value
71
+ * @summary Returns the length of a value
72
+ * @param {string | Set<any> | any[] | Map<any, any>} value - The value to evaluate
73
+ * @return {number} Returns the length of a value
74
+ */
75
+ export declare function valueLength(value: string | Set<any> | any[] | Map<any, any>): number;