@decaf-ts/decorator-validation 1.10.5 → 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 +1 @@
1
- {"version":3,"file":"MinValidator.js","sourceRoot":"","sources":["../../../src/validation/Validators/MinValidator.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAAwC;AACxC,+CAAqE;AACrE,iDAAyC;AAGzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEI,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,qBAA8B;IAC9D,YAAY,UAAkB,kCAAsB,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,oCAAY;uBAAZ,YAAY;IADxB,IAAA,sBAAS,EAAC,0BAAc,CAAC,GAAG,CAAC;;GACjB,YAAY,CAqCxB"}
1
+ {"version":3,"file":"MinValidator.js","sourceRoot":"","sources":["../../../src/validation/Validators/MinValidator.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAAwC;AACxC,+CAAqE;AACrE,iDAAyC;AAGzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEI,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,qBAA8B;IAC9D,YAAY,UAAkB,kCAAsB,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,oCAAY;uBAAZ,YAAY;IADxB,IAAA,sBAAS,EAAC,0BAAc,CAAC,GAAG,CAAC;;GACjB,YAAY,CAqCxB"}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.OptionValidator = void 0;
13
+ const Validator_1 = require("./Validator.cjs");
14
+ const constants_1 = require("./constants.cjs");
15
+ const decorators_1 = require("./decorators.cjs");
16
+ /**
17
+ * @summary Option Validator
18
+ * @description Validates properties against an object or a list of accepted values
19
+ *
20
+ * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#ENUM}
21
+ *
22
+ * @class OptionValidator
23
+ * @extends Validator
24
+ *
25
+ * @category Validators
26
+ */
27
+ let OptionValidator = class OptionValidator extends Validator_1.Validator {
28
+ constructor(message = constants_1.DEFAULT_ERROR_MESSAGES.ENUM) {
29
+ super(message);
30
+ }
31
+ /**
32
+ *
33
+ * @param {any[] | Record<any, any>} value
34
+ * @param {EnumValidatorOptions} options
35
+ *
36
+ * @return {string | undefined}
37
+ *
38
+ * @memberOf module:decorator-validation
39
+ * @override
40
+ *
41
+ * @see Validator#hasErrors
42
+ */
43
+ hasErrors(value, options) {
44
+ if (typeof value === "undefined")
45
+ return;
46
+ if (Array.isArray(options.enum))
47
+ return !options.enum.includes(value)
48
+ ? this.getMessage(options.message || this.message, options.enum)
49
+ : undefined;
50
+ if (typeof options.enum === "object") {
51
+ const keys = Object.keys(options.enum);
52
+ for (const key of keys)
53
+ if (options.enum[key] === value)
54
+ return undefined;
55
+ return this.getMessage(options.message || this.message, Object.values(options.enum));
56
+ }
57
+ }
58
+ };
59
+ exports.OptionValidator = OptionValidator;
60
+ exports.OptionValidator = OptionValidator = __decorate([
61
+ (0, decorators_1.validator)(constants_1.ValidationKeys.ENUM),
62
+ __metadata("design:paramtypes", [String])
63
+ ], OptionValidator);
64
+ //# sourceMappingURL=OptionValidator.js.map
@@ -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 @@
1
+ {"version":3,"file":"OptionValidator.js","sourceRoot":"","sources":["../../../src/validation/Validators/OptionValidator.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAAwC;AACxC,+CAAqE;AACrE,iDAAyC;AAGzC;;;;;;;;;;GAUG;AAEI,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,qBAA+B;IAClE,YAAY,UAAkB,kCAAsB,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,0CAAe;0BAAf,eAAe;IAD3B,IAAA,sBAAS,EAAC,0BAAc,CAAC,IAAI,CAAC;;GAClB,eAAe,CAqC3B"}
@@ -15,7 +15,7 @@ const constants_1 = require("./constants.cjs");
15
15
  const decorators_1 = require("./decorators.cjs");
16
16
  const Validation_1 = require("./../Validation.cjs");
17
17
  const constants_2 = require("./../../utils/constants.cjs");
18
- const reflection_1 = require("@decaf-ts/reflection");
18
+ const utils_1 = require("./utils.cjs");
19
19
  /**
20
20
  * @description Validator for checking if a value is of the expected type(s)
21
21
  * @summary The TypeValidator ensures that a value matches one of the specified types.
@@ -105,7 +105,7 @@ let TypeValidator = class TypeValidator extends Validator_1.Validator {
105
105
  t = t();
106
106
  return t.name || t;
107
107
  });
108
- if (!reflection_1.Reflection.evaluateDesignTypes(value, ts))
108
+ if (!(0, utils_1.evaluateDesignTypes)(value, ts))
109
109
  return this.getMessage(message || this.message, typeof ts === "string" ? ts : Array.isArray(ts) ? ts.join(", ") : ts, typeof value);
110
110
  }
111
111
  };
@@ -1 +1 @@
1
- {"version":3,"file":"TypeValidator.js","sourceRoot":"","sources":["../../../src/validation/Validators/TypeValidator.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAAwC;AACxC,+CAAqE;AACrE,iDAAyC;AACzC,oDAA2C;AAM3C,2DAAkD;AAClD,qDAAkD;AAElD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AAEI,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,qBAA+B;IAChE,YAAY,UAAkB,kCAAsB,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,uBAAU,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,sCAAa;wBAAb,aAAa;IADzB,IAAA,sBAAS,EAAC,0BAAc,CAAC,IAAI,CAAC;;GAClB,aAAa,CA0CzB;AAED;;;;;;;GAOG;AACH,uBAAU,CAAC,QAAQ,CAAC;IAClB,SAAS,EAAE,aAAiC;IAC5C,aAAa,EAAE,qBAAS,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,+CAAwC;AACxC,+CAAqE;AACrE,iDAAyC;AACzC,oDAA2C;AAM3C,2DAAkD;AAClD,uCAA8C;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AAEI,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,qBAA+B;IAChE,YAAY,UAAkB,kCAAsB,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,IAAA,2BAAmB,EAAC,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,sCAAa;wBAAb,aAAa;IADzB,IAAA,sBAAS,EAAC,0BAAc,CAAC,IAAI,CAAC;;GAClB,aAAa,CA0CzB;AAED;;;;;;;GAOG;AACH,uBAAU,CAAC,QAAQ,CAAC;IAClB,SAAS,EAAE,aAAiC;IAC5C,aAAa,EAAE,qBAAS,CAAC,IAAI;IAC7B,IAAI,EAAE,KAAK;CACW,CAAC,CAAC"}
@@ -1,7 +1,4 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_PATTERNS = exports.DEFAULT_ERROR_MESSAGES = exports.DAYS_OF_WEEK_NAMES = exports.MONTH_NAMES = exports.ValidationKeys = exports.ComparisonValidationKeys = void 0;
4
- const constants_1 = require("./../../utils/constants.cjs");
5
2
  /**
6
3
  * @description Object-like set of keys used for comparison-based validations.
7
4
  * @summary Provides canonical names for validators that compare two values (equality and ordering checks).
@@ -14,6 +11,8 @@ const constants_1 = require("./../../utils/constants.cjs");
14
11
  * @property {"greaterThanOrEqual"} GREATER_THAN_OR_EQUAL Validates if a value is greater than or equal to another.
15
12
  * @memberOf module:decorator-validation.Validation
16
13
  */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.DEFAULT_PATTERNS = exports.DEFAULT_ERROR_MESSAGES = exports.DAYS_OF_WEEK_NAMES = exports.MONTH_NAMES = exports.ValidationKeys = exports.ComparisonValidationKeys = void 0;
17
16
  /**
18
17
  * @description Keys used for comparison-based validations.
19
18
  * @summary Canonical key names for comparison validators.
@@ -61,7 +60,7 @@ exports.ComparisonValidationKeys = {
61
60
  * @type {ValidationKeysDef}
62
61
  */
63
62
  exports.ValidationKeys = {
64
- REFLECT: `${constants_1.ModelKeys.REFLECT}validation.`,
63
+ REFLECT: `validation`,
65
64
  DATE: "date",
66
65
  EMAIL: "email",
67
66
  FORMAT: "format",
@@ -78,6 +77,7 @@ exports.ValidationKeys = {
78
77
  UNIQUE: "unique",
79
78
  URL: "url",
80
79
  VALIDATOR: "validator",
80
+ ENUM: "enum",
81
81
  ...exports.ComparisonValidationKeys,
82
82
  };
83
83
  /**
@@ -170,6 +170,7 @@ exports.DEFAULT_ERROR_MESSAGES = {
170
170
  GREATER_THAN: "This field must be greater than field {0}",
171
171
  GREATER_THAN_OR_EQUAL: "This field must be greater than or equal to field {0}",
172
172
  UNIQUE: "Duplicate found, this field must be unique.",
173
+ ENUM: "Value is not allowed. Must be one of {0}",
173
174
  };
174
175
  /**
175
176
  * @description Type definition for default regular expression patterns used in validation.
@@ -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 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/validation/Validators/constants.ts"],"names":[],"mappings":";;;AAAA,2DAAkD;AAElD;;;;;;;;;;;GAWG;AAEH;;;;;;;GAOG;AACU,QAAA,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;AACU,QAAA,cAAc,GAAG;IAC5B,OAAO,EAAE,GAAG,qBAAS,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,gCAAwB;CACnB,CAAC;AAEX;;;;;;GAMG;AACU,QAAA,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;AACU,QAAA,kBAAkB,GAAG;IAChC,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,WAAW;IACX,UAAU;IACV,QAAQ;IACR,UAAU;CACX,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH;;;;;;;GAOG;AACU,QAAA,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;AACU,QAAA,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;AACU,QAAA,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;AACU,QAAA,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,gCAAwB;CACnB,CAAC;AAEX;;;;;;GAMG;AACU,QAAA,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;AACU,QAAA,kBAAkB,GAAG;IAChC,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,WAAW;IACX,UAAU;IACV,QAAQ;IACR,UAAU;CACX,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH;;;;;;;GAOG;AACU,QAAA,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;AACU,QAAA,gBAAgB,GAAG;IAC9B,KAAK,EACH,4JAA4J;IAC9J,GAAG,EAAE,yaAAya;IAC9a,QAAQ,EAAE;QACR,iBAAiB,EACf,iFAAiF;KACpF;CACF,CAAC"}
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validator = validator;
4
4
  const Validation_1 = require("./../Validation.cjs");
5
+ const decoration_1 = require("@decaf-ts/decoration");
5
6
  const constants_1 = require("./constants.cjs");
6
- const reflection_1 = require("@decaf-ts/reflection");
7
7
  /**
8
8
  * @summary Marks the class as a validator for a certain key.
9
9
  * @description Registers the class in the {@link Validation} with the provided key
@@ -15,7 +15,7 @@ const reflection_1 = require("@decaf-ts/reflection");
15
15
  * @category Class Decorators
16
16
  */
17
17
  function validator(...keys) {
18
- return (0, reflection_1.apply)(((original) => {
18
+ return (0, decoration_1.apply)(((original) => {
19
19
  keys.forEach((k) => {
20
20
  Validation_1.Validation.register({
21
21
  validator: original,
@@ -24,6 +24,6 @@ function validator(...keys) {
24
24
  });
25
25
  });
26
26
  return original;
27
- }), (0, reflection_1.metadata)(Validation_1.Validation.key(constants_1.ValidationKeys.VALIDATOR), keys));
27
+ }), (0, decoration_1.metadata)(constants_1.ValidationKeys.VALIDATOR, keys));
28
28
  }
29
29
  //# sourceMappingURL=decorators.js.map
@@ -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 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/validation/Validators/decorators.ts"],"names":[],"mappings":";;AAiBA,8BAcC;AA9BD,oDAA2C;AAE3C,+CAA6C;AAC7C,qDAAuD;AAGvD;;;;;;;;;GASG;AACH,SAAgB,SAAS,CAAsB,GAAG,IAAc;IAC9D,OAAO,IAAA,kBAAK,EACV,CAAC,CAAC,QAAwB,EAAE,EAAE;QAC5B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE;YACzB,uBAAU,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,IAAA,qBAAQ,EAAC,uBAAU,CAAC,GAAG,CAAC,0BAAc,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":";;AAgBA,8BAcC;AA7BD,oDAA2C;AAC3C,qDAAoE;AACpE,+CAA6C;AAG7C;;;;;;;;;GASG;AACH,SAAgB,SAAS,CAAsB,GAAG,IAAc;IAC9D,OAAO,IAAA,kBAAK,EACV,CAAC,CAAC,QAAwB,EAAE,EAAE;QAC5B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE;YACzB,uBAAU,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,IAAA,qBAAQ,EAAC,0BAAc,CAAC,SAAS,EAAE,IAAI,CAAC,CACzC,CAAC;AACJ,CAAC"}
@@ -30,6 +30,7 @@ __exportStar(require("./MaxLengthValidator.cjs"), exports);
30
30
  __exportStar(require("./MaxValidator.cjs"), exports);
31
31
  __exportStar(require("./MinLengthValidator.cjs"), exports);
32
32
  __exportStar(require("./MinValidator.cjs"), exports);
33
+ __exportStar(require("./OptionValidator.cjs"), exports);
33
34
  __exportStar(require("./PasswordValidator.cjs"), exports);
34
35
  __exportStar(require("./PatternValidator.cjs"), exports);
35
36
  __exportStar(require("./RequiredValidator.cjs"), exports);
@@ -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";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/validation/Validators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAA4B;AAC5B,uDAAiC;AACjC,sDAAgC;AAChC,mDAA6B;AAC7B,sDAAgC;AAChC,uDAAiC;AACjC,wDAAkC;AAClC,6DAAuC;AACvC,oEAA8C;AAC9C,0DAAoC;AACpC,iEAA2C;AAC3C,sDAAgC;AAChC,2DAAqC;AACrC,qDAA+B;AAC/B,2DAAqC;AACrC,qDAA+B;AAC/B,0DAAoC;AACpC,yDAAmC;AACnC,0DAAoC;AACpC,sDAAgC;AAChC,sDAAgC;AAChC,qDAA+B;AAC/B,kDAA4B;AAC5B,0DAAoC;AACpC,8CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/validation/Validators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAA4B;AAC5B,uDAAiC;AACjC,sDAAgC;AAChC,mDAA6B;AAC7B,sDAAgC;AAChC,uDAAiC;AACjC,wDAAkC;AAClC,6DAAuC;AACvC,oEAA8C;AAC9C,0DAAoC;AACpC,iEAA2C;AAC3C,sDAAgC;AAChC,2DAAqC;AACrC,qDAA+B;AAC/B,2DAAqC;AACrC,qDAA+B;AAC/B,wDAAkC;AAClC,0DAAoC;AACpC,yDAAmC;AACnC,0DAAoC;AACpC,sDAAgC;AAChC,sDAAgC;AAChC,qDAA+B;AAC/B,kDAA4B;AAC5B,0DAAoC;AACpC,8CAAwB"}
@@ -3,6 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isValidForGteOrLteComparison = isValidForGteOrLteComparison;
4
4
  exports.isLessThan = isLessThan;
5
5
  exports.isGreaterThan = isGreaterThan;
6
+ exports.checkType = checkType;
7
+ exports.checkTypes = checkTypes;
8
+ exports.evaluateDesignTypes = evaluateDesignTypes;
9
+ exports.valueLength = valueLength;
6
10
  const constants_1 = require("./../../constants/index.cjs");
7
11
  const utils_1 = require("./../../utils/index.cjs");
8
12
  // /**
@@ -193,4 +197,66 @@ function isGreaterThan(a, b) {
193
197
  }
194
198
  throw new TypeError((0, utils_1.sf)(constants_1.COMPARISON_ERROR_MESSAGES.UNSUPPORTED_TYPES_COMPARISON, getTypeName(a), getTypeName(b)));
195
199
  }
200
+ /**
201
+ * @description Checks if a value matches a specified type name
202
+ * @summary Utility function to verify if a value's type matches the provided type name
203
+ * @param {unknown} value - The value to check the type of
204
+ * @param {string} acceptedType - The type name to check against
205
+ * @return {boolean} Returns true if the value matches the accepted type, false otherwise
206
+ */
207
+ function checkType(value, acceptedType) {
208
+ if (typeof value === acceptedType.toLowerCase())
209
+ return true;
210
+ if (typeof value === "undefined")
211
+ return false;
212
+ if (typeof value !== "object")
213
+ return false;
214
+ return (value.constructor &&
215
+ value.constructor.name.toLowerCase() ===
216
+ acceptedType.toLowerCase());
217
+ }
218
+ /**
219
+ * @description Checks if a value matches any of the specified type names
220
+ * @summary Utility function to verify if a value's type matches any of the provided type names
221
+ * @param {unknown} value - The value to check the type of
222
+ * @param {string[]} acceptedTypes - Array of type names to check against
223
+ * @return {boolean} Returns true if the value matches any of the accepted types, false otherwise
224
+ */
225
+ function checkTypes(value, acceptedTypes) {
226
+ return !acceptedTypes.every((t) => !checkType(value, t));
227
+ }
228
+ /**
229
+ * @description Evaluates if a value matches the specified type metadata
230
+ * @summary Compares a value against type metadata to determine if they match
231
+ * @param {unknown} value - The value to evaluate
232
+ * @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
233
+ * @return {boolean} Returns true if the value matches the type metadata, false otherwise
234
+ */
235
+ function evaluateDesignTypes(value, types) {
236
+ switch (typeof types) {
237
+ case "string":
238
+ return checkType(value, types);
239
+ case "object":
240
+ if (Array.isArray(types))
241
+ return checkTypes(value, types);
242
+ return true;
243
+ case "function":
244
+ if (types.name && types.name !== "Object")
245
+ return checkType(value, types.name);
246
+ return true;
247
+ default:
248
+ return true;
249
+ }
250
+ }
251
+ /**
252
+ * @description Returns the length of a value
253
+ * @summary Returns the length of a value
254
+ * @param {string | Set<any> | any[] | Map<any, any>} value - The value to evaluate
255
+ * @return {number} Returns the length of a value
256
+ */
257
+ function valueLength(value) {
258
+ return value instanceof Set || value instanceof Map
259
+ ? value.size
260
+ : value.length;
261
+ }
196
262
  //# sourceMappingURL=utils.js.map
@@ -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;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/validation/Validators/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/validation/Validators/utils.ts"],"names":[],"mappings":"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"}