@decaf-ts/decorator-validation 1.5.8 → 1.5.10

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 (212) hide show
  1. package/LICENSE.md +0 -0
  2. package/README.md +0 -0
  3. package/dist/decorator-validation.js +1 -1
  4. package/dist/decorator-validation.js.LICENSE.txt +0 -0
  5. package/dist/esm/decorator-validation.js +1 -1
  6. package/dist/esm/decorator-validation.js.LICENSE.txt +0 -0
  7. package/{lib/esm → dist/types}/index.d.ts +1 -1
  8. package/{lib/esm → dist/types}/model/Model.d.ts +1 -0
  9. package/{lib/esm → dist/types}/model/ModelErrorDefinition.d.ts +0 -0
  10. package/{lib/esm → dist/types}/model/constants.d.ts +0 -0
  11. package/{lib/esm → dist/types}/model/construction.d.ts +0 -0
  12. package/{lib/esm → dist/types}/model/decorators.d.ts +0 -0
  13. package/{lib/esm → dist/types}/model/index.d.ts +0 -1
  14. package/{lib/esm → dist/types}/model/types.d.ts +0 -0
  15. package/{lib/esm → dist/types}/model/validation.d.ts +0 -0
  16. package/{lib/esm → dist/types}/utils/constants.d.ts +0 -0
  17. package/{lib/esm → dist/types}/utils/dates.d.ts +0 -0
  18. package/{lib/esm → dist/types}/utils/decorators.d.ts +0 -0
  19. package/{lib → dist/types}/utils/hashing.d.ts +0 -14
  20. package/{lib → dist/types}/utils/index.d.ts +1 -0
  21. package/{lib/esm → dist/types}/utils/registry.d.ts +0 -0
  22. package/{lib → dist/types}/utils/serialization.d.ts +4 -30
  23. package/{lib/esm → dist/types}/utils/strings.d.ts +0 -0
  24. package/dist/types/utils/types.d.ts +29 -0
  25. package/{lib → dist/types}/validation/Validation.d.ts +1 -1
  26. package/{lib → dist/types}/validation/Validators/DateValidator.d.ts +1 -1
  27. package/{lib → dist/types}/validation/Validators/EmailValidator.d.ts +1 -1
  28. package/{lib → dist/types}/validation/Validators/ListValidator.d.ts +1 -1
  29. package/{lib → dist/types}/validation/Validators/MaxLengthValidator.d.ts +1 -1
  30. package/{lib/esm → dist/types}/validation/Validators/MaxValidator.d.ts +1 -1
  31. package/{lib/esm → dist/types}/validation/Validators/MinLengthValidator.d.ts +1 -1
  32. package/{lib/esm → dist/types}/validation/Validators/MinValidator.d.ts +1 -1
  33. package/{lib/esm → dist/types}/validation/Validators/PasswordValidator.d.ts +1 -1
  34. package/{lib → dist/types}/validation/Validators/PatternValidator.d.ts +1 -1
  35. package/{lib/esm → dist/types}/validation/Validators/RequiredValidator.d.ts +1 -1
  36. package/{lib/esm → dist/types}/validation/Validators/StepValidator.d.ts +1 -1
  37. package/{lib → dist/types}/validation/Validators/TypeValidator.d.ts +1 -1
  38. package/{lib/esm → dist/types}/validation/Validators/URLValidator.d.ts +1 -1
  39. package/{lib/esm → dist/types}/validation/Validators/Validator.d.ts +1 -1
  40. package/{lib/esm → dist/types}/validation/Validators/ValidatorRegistry.d.ts +2 -2
  41. package/{lib/esm → dist/types}/validation/Validators/constants.d.ts +0 -0
  42. package/{lib/esm → dist/types}/validation/Validators/decorators.d.ts +0 -0
  43. package/dist/types/validation/Validators/index.d.ts +17 -0
  44. package/{lib/esm → dist/types}/validation/decorators.d.ts +0 -0
  45. package/{lib/esm → dist/types}/validation/index.d.ts +0 -0
  46. package/{lib/validation/Validators → dist/types/validation}/types.d.ts +49 -3
  47. package/lib/esm/index.js +3 -1
  48. package/lib/esm/model/Model.js +8 -1
  49. package/lib/esm/model/ModelErrorDefinition.js +2 -0
  50. package/lib/esm/model/constants.js +2 -0
  51. package/lib/esm/model/construction.js +2 -0
  52. package/lib/esm/model/decorators.js +2 -0
  53. package/lib/esm/model/index.js +2 -1
  54. package/lib/esm/model/types.js +2 -0
  55. package/lib/esm/model/validation.js +2 -0
  56. package/lib/esm/utils/constants.js +2 -0
  57. package/lib/esm/utils/dates.js +2 -0
  58. package/lib/esm/utils/decorators.js +2 -0
  59. package/lib/esm/utils/hashing.js +2 -17
  60. package/lib/esm/utils/index.js +3 -0
  61. package/lib/esm/utils/registry.js +2 -0
  62. package/lib/esm/utils/serialization.js +4 -1
  63. package/lib/esm/utils/strings.js +2 -0
  64. package/lib/esm/utils/types.js +3 -0
  65. package/lib/esm/validation/Validation.js +2 -0
  66. package/lib/esm/validation/Validators/DateValidator.js +2 -0
  67. package/lib/esm/validation/Validators/EmailValidator.js +2 -0
  68. package/lib/esm/validation/Validators/ListValidator.js +2 -0
  69. package/lib/esm/validation/Validators/MaxLengthValidator.js +2 -0
  70. package/lib/esm/validation/Validators/MaxValidator.js +2 -0
  71. package/lib/esm/validation/Validators/MinLengthValidator.js +2 -0
  72. package/lib/esm/validation/Validators/MinValidator.js +2 -0
  73. package/lib/esm/validation/Validators/PasswordValidator.js +2 -0
  74. package/lib/esm/validation/Validators/PatternValidator.js +2 -0
  75. package/lib/esm/validation/Validators/RequiredValidator.js +2 -0
  76. package/lib/esm/validation/Validators/StepValidator.js +2 -0
  77. package/lib/esm/validation/Validators/TypeValidator.js +2 -0
  78. package/lib/esm/validation/Validators/URLValidator.js +2 -0
  79. package/lib/esm/validation/Validators/Validator.js +2 -0
  80. package/lib/esm/validation/Validators/ValidatorRegistry.js +2 -0
  81. package/lib/esm/validation/Validators/constants.js +2 -0
  82. package/lib/esm/validation/Validators/decorators.js +2 -0
  83. package/lib/esm/validation/Validators/index.js +2 -35
  84. package/lib/esm/validation/decorators.js +2 -0
  85. package/lib/esm/validation/index.js +2 -0
  86. package/lib/esm/validation/types.js +2 -0
  87. package/lib/index.cjs +61 -0
  88. package/lib/model/Model.cjs +397 -0
  89. package/lib/model/ModelErrorDefinition.cjs +58 -0
  90. package/lib/model/constants.cjs +74 -0
  91. package/lib/model/construction.cjs +70 -0
  92. package/lib/model/decorators.cjs +69 -0
  93. package/lib/model/index.cjs +25 -0
  94. package/lib/model/types.cjs +4 -0
  95. package/lib/model/validation.cjs +140 -0
  96. package/lib/utils/constants.cjs +32 -0
  97. package/lib/utils/dates.cjs +253 -0
  98. package/lib/utils/decorators.cjs +24 -0
  99. package/lib/utils/hashing.cjs +90 -0
  100. package/lib/utils/index.cjs +26 -0
  101. package/lib/utils/registry.cjs +4 -0
  102. package/lib/utils/serialization.cjs +96 -0
  103. package/lib/utils/strings.cjs +37 -0
  104. package/lib/utils/types.cjs +4 -0
  105. package/lib/validation/Validation.cjs +77 -0
  106. package/lib/validation/Validators/DateValidator.cjs +59 -0
  107. package/lib/validation/Validators/EmailValidator.cjs +55 -0
  108. package/lib/validation/Validators/ListValidator.cjs +72 -0
  109. package/lib/validation/Validators/MaxLengthValidator.cjs +57 -0
  110. package/lib/validation/Validators/MaxValidator.cjs +62 -0
  111. package/lib/validation/Validators/MinLengthValidator.cjs +57 -0
  112. package/lib/validation/Validators/MinValidator.cjs +62 -0
  113. package/lib/validation/Validators/PasswordValidator.cjs +55 -0
  114. package/lib/validation/Validators/PatternValidator.cjs +75 -0
  115. package/lib/validation/Validators/RequiredValidator.cjs +62 -0
  116. package/lib/validation/Validators/StepValidator.cjs +57 -0
  117. package/lib/validation/Validators/TypeValidator.cjs +65 -0
  118. package/lib/validation/Validators/URLValidator.cjs +54 -0
  119. package/lib/validation/Validators/Validator.cjs +53 -0
  120. package/lib/validation/Validators/ValidatorRegistry.cjs +87 -0
  121. package/lib/validation/Validators/constants.cjs +139 -0
  122. package/lib/validation/Validators/decorators.cjs +30 -0
  123. package/lib/validation/Validators/index.cjs +35 -0
  124. package/lib/validation/decorators.cjs +306 -0
  125. package/lib/validation/{index.js → index.cjs} +6 -4
  126. package/lib/validation/types.cjs +4 -0
  127. package/package.json +2 -2
  128. package/lib/esm/model/utils.d.ts +0 -2
  129. package/lib/esm/model/utils.js +0 -8
  130. package/lib/esm/utils/hashing.d.ts +0 -52
  131. package/lib/esm/utils/index.d.ts +0 -7
  132. package/lib/esm/utils/serialization.d.ts +0 -79
  133. package/lib/esm/validation/Validation.d.ts +0 -51
  134. package/lib/esm/validation/Validators/DateValidator.d.ts +0 -28
  135. package/lib/esm/validation/Validators/EmailValidator.d.ts +0 -28
  136. package/lib/esm/validation/Validators/ListValidator.d.ts +0 -28
  137. package/lib/esm/validation/Validators/MaxLengthValidator.d.ts +0 -29
  138. package/lib/esm/validation/Validators/PatternValidator.d.ts +0 -37
  139. package/lib/esm/validation/Validators/TypeValidator.d.ts +0 -25
  140. package/lib/esm/validation/Validators/index.d.ts +0 -52
  141. package/lib/esm/validation/Validators/types.js +0 -1
  142. package/lib/esm/validation/types.d.ts +0 -46
  143. package/lib/index.d.ts +0 -42
  144. package/lib/index.js +0 -59
  145. package/lib/model/Model.d.ts +0 -203
  146. package/lib/model/Model.js +0 -389
  147. package/lib/model/ModelErrorDefinition.d.ts +0 -22
  148. package/lib/model/ModelErrorDefinition.js +0 -56
  149. package/lib/model/constants.d.ts +0 -56
  150. package/lib/model/constants.js +0 -72
  151. package/lib/model/construction.d.ts +0 -29
  152. package/lib/model/construction.js +0 -68
  153. package/lib/model/decorators.d.ts +0 -25
  154. package/lib/model/decorators.js +0 -67
  155. package/lib/model/index.d.ts +0 -8
  156. package/lib/model/index.js +0 -24
  157. package/lib/model/types.d.ts +0 -79
  158. package/lib/model/types.js +0 -2
  159. package/lib/model/utils.d.ts +0 -2
  160. package/lib/model/utils.js +0 -11
  161. package/lib/model/validation.d.ts +0 -14
  162. package/lib/model/validation.js +0 -138
  163. package/lib/utils/constants.d.ts +0 -26
  164. package/lib/utils/constants.js +0 -30
  165. package/lib/utils/dates.d.ts +0 -76
  166. package/lib/utils/dates.js +0 -251
  167. package/lib/utils/decorators.d.ts +0 -2
  168. package/lib/utils/decorators.js +0 -22
  169. package/lib/utils/hashing.js +0 -106
  170. package/lib/utils/index.js +0 -23
  171. package/lib/utils/registry.d.ts +0 -68
  172. package/lib/utils/registry.js +0 -2
  173. package/lib/utils/serialization.js +0 -93
  174. package/lib/utils/strings.d.ts +0 -25
  175. package/lib/utils/strings.js +0 -35
  176. package/lib/validation/Validation.js +0 -75
  177. package/lib/validation/Validators/DateValidator.js +0 -57
  178. package/lib/validation/Validators/EmailValidator.js +0 -53
  179. package/lib/validation/Validators/ListValidator.js +0 -70
  180. package/lib/validation/Validators/MaxLengthValidator.js +0 -55
  181. package/lib/validation/Validators/MaxValidator.d.ts +0 -28
  182. package/lib/validation/Validators/MaxValidator.js +0 -60
  183. package/lib/validation/Validators/MinLengthValidator.d.ts +0 -29
  184. package/lib/validation/Validators/MinLengthValidator.js +0 -55
  185. package/lib/validation/Validators/MinValidator.d.ts +0 -28
  186. package/lib/validation/Validators/MinValidator.js +0 -60
  187. package/lib/validation/Validators/PasswordValidator.d.ts +0 -28
  188. package/lib/validation/Validators/PasswordValidator.js +0 -53
  189. package/lib/validation/Validators/PatternValidator.js +0 -73
  190. package/lib/validation/Validators/RequiredValidator.d.ts +0 -28
  191. package/lib/validation/Validators/RequiredValidator.js +0 -60
  192. package/lib/validation/Validators/StepValidator.d.ts +0 -29
  193. package/lib/validation/Validators/StepValidator.js +0 -55
  194. package/lib/validation/Validators/TypeValidator.js +0 -63
  195. package/lib/validation/Validators/URLValidator.d.ts +0 -27
  196. package/lib/validation/Validators/URLValidator.js +0 -52
  197. package/lib/validation/Validators/Validator.d.ts +0 -41
  198. package/lib/validation/Validators/Validator.js +0 -51
  199. package/lib/validation/Validators/ValidatorRegistry.d.ts +0 -47
  200. package/lib/validation/Validators/ValidatorRegistry.js +0 -85
  201. package/lib/validation/Validators/constants.d.ts +0 -96
  202. package/lib/validation/Validators/constants.js +0 -137
  203. package/lib/validation/Validators/decorators.d.ts +0 -12
  204. package/lib/validation/Validators/decorators.js +0 -28
  205. package/lib/validation/Validators/index.d.ts +0 -52
  206. package/lib/validation/Validators/index.js +0 -69
  207. package/lib/validation/Validators/types.js +0 -2
  208. package/lib/validation/decorators.d.ts +0 -178
  209. package/lib/validation/decorators.js +0 -304
  210. package/lib/validation/index.d.ts +0 -4
  211. package/lib/validation/types.d.ts +0 -46
  212. package/lib/validation/types.js +0 -2
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validator = validator;
4
+ const Validation_1 = require("../Validation.cjs");
5
+ const constants_1 = require("./constants.cjs");
6
+ const reflection_1 = require("@decaf-ts/reflection");
7
+ /**
8
+ * @summary Marks the class as a validator for a certain key.
9
+ * @description Registers the class in the {@link Validation} with the provided key
10
+ *
11
+ * @param {string} keys the validation key
12
+ *
13
+ * @function validator
14
+ *
15
+ * @category Decorators
16
+ */
17
+ function validator(...keys) {
18
+ return (0, reflection_1.apply)(((original) => {
19
+ keys.forEach((k) => {
20
+ Validation_1.Validation.register({
21
+ validator: original,
22
+ validationKey: k,
23
+ save: true,
24
+ });
25
+ });
26
+ return original;
27
+ }), (0, reflection_1.metadata)(Validation_1.Validation.key(constants_1.ValidationKeys.VALIDATOR), keys));
28
+ }
29
+
30
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvZGVjb3JhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlCQSw4QkFjQztBQTlCRCw4Q0FBMkM7QUFFM0MsMkNBQTZDO0FBQzdDLHFEQUF1RDtBQUd2RDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixTQUFTLENBQXNCLEdBQUcsSUFBYztJQUM5RCxPQUFPLElBQUEsa0JBQUssRUFDVixDQUFDLENBQUMsUUFBd0IsRUFBRSxFQUFFO1FBQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRTtZQUN6Qix1QkFBVSxDQUFDLFFBQVEsQ0FBQztnQkFDbEIsU0FBUyxFQUFFLFFBQVE7Z0JBQ25CLGFBQWEsRUFBRSxDQUFDO2dCQUNoQixJQUFJLEVBQUUsSUFBSTthQUNZLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUMsQ0FBbUIsRUFDcEIsSUFBQSxxQkFBUSxFQUFDLHVCQUFVLENBQUMsR0FBRyxDQUFDLDBCQUFjLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQ3pELENBQUM7QUFDSixDQUFDIiwiZmlsZSI6InZhbGlkYXRpb24vVmFsaWRhdG9ycy9kZWNvcmF0b3JzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSBcIi4vVmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSBcIi4uL1ZhbGlkYXRpb25cIjtcbmltcG9ydCB7IENvbnN0cnVjdG9yIH0gZnJvbSBcIi4uLy4uL21vZGVsL3R5cGVzXCI7XG5pbXBvcnQgeyBWYWxpZGF0aW9uS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgYXBwbHksIG1ldGFkYXRhIH0gZnJvbSBcIkBkZWNhZi10cy9yZWZsZWN0aW9uXCI7XG5pbXBvcnQgeyBWYWxpZGF0b3JEZWZpbml0aW9uIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgTWFya3MgdGhlIGNsYXNzIGFzIGEgdmFsaWRhdG9yIGZvciBhIGNlcnRhaW4ga2V5LlxuICogQGRlc2NyaXB0aW9uIFJlZ2lzdGVycyB0aGUgY2xhc3MgaW4gdGhlIHtAbGluayBWYWxpZGF0aW9ufSB3aXRoIHRoZSBwcm92aWRlZCBrZXlcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30ga2V5cyB0aGUgdmFsaWRhdGlvbiBrZXlcbiAqXG4gKiBAZnVuY3Rpb24gdmFsaWRhdG9yXG4gKlxuICogQGNhdGVnb3J5IERlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRvcjxUIGV4dGVuZHMgVmFsaWRhdG9yPiguLi5rZXlzOiBzdHJpbmdbXSkge1xuICByZXR1cm4gYXBwbHkoXG4gICAgKChvcmlnaW5hbDogQ29uc3RydWN0b3I8VD4pID0+IHtcbiAgICAgIGtleXMuZm9yRWFjaCgoazogc3RyaW5nKSA9PiB7XG4gICAgICAgIFZhbGlkYXRpb24ucmVnaXN0ZXIoe1xuICAgICAgICAgIHZhbGlkYXRvcjogb3JpZ2luYWwsXG4gICAgICAgICAgdmFsaWRhdGlvbktleTogayxcbiAgICAgICAgICBzYXZlOiB0cnVlLFxuICAgICAgICB9IGFzIFZhbGlkYXRvckRlZmluaXRpb24pO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gb3JpZ2luYWw7XG4gICAgfSkgYXMgQ2xhc3NEZWNvcmF0b3IsXG4gICAgbWV0YWRhdGEoVmFsaWRhdGlvbi5rZXkoVmFsaWRhdGlvbktleXMuVkFMSURBVE9SKSwga2V5cylcbiAgKTtcbn1cbiJdfQ==
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./constants.cjs"), exports);
18
+ __exportStar(require("./DateValidator.cjs"), exports);
19
+ __exportStar(require("./decorators.cjs"), exports);
20
+ __exportStar(require("./EmailValidator.cjs"), exports);
21
+ __exportStar(require("./ListValidator.cjs"), exports);
22
+ __exportStar(require("./MaxLengthValidator.cjs"), exports);
23
+ __exportStar(require("./MaxValidator.cjs"), exports);
24
+ __exportStar(require("./MinLengthValidator.cjs"), exports);
25
+ __exportStar(require("./MinValidator.cjs"), exports);
26
+ __exportStar(require("./PasswordValidator.cjs"), exports);
27
+ __exportStar(require("./PatternValidator.cjs"), exports);
28
+ __exportStar(require("./RequiredValidator.cjs"), exports);
29
+ __exportStar(require("./StepValidator.cjs"), exports);
30
+ __exportStar(require("./TypeValidator.cjs"), exports);
31
+ __exportStar(require("./URLValidator.cjs"), exports);
32
+ __exportStar(require("./Validator.cjs"), exports);
33
+ __exportStar(require("./ValidatorRegistry.cjs"), exports);
34
+
35
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDhDQUE0QjtBQUM1QixrREFBZ0M7QUFDaEMsK0NBQTZCO0FBQzdCLG1EQUFpQztBQUNqQyxrREFBZ0M7QUFDaEMsdURBQXFDO0FBQ3JDLGlEQUErQjtBQUMvQix1REFBcUM7QUFDckMsaURBQStCO0FBQy9CLHNEQUFvQztBQUNwQyxxREFBbUM7QUFDbkMsc0RBQW9DO0FBQ3BDLGtEQUFnQztBQUNoQyxrREFBZ0M7QUFDaEMsaURBQStCO0FBQy9CLDhDQUE0QjtBQUM1QixzREFBb0MiLCJmaWxlIjoidmFsaWRhdGlvbi9WYWxpZGF0b3JzL2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9EYXRlVmFsaWRhdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9kZWNvcmF0b3JzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9FbWFpbFZhbGlkYXRvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vTGlzdFZhbGlkYXRvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vTWF4TGVuZ3RoVmFsaWRhdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9NYXhWYWxpZGF0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL01pbkxlbmd0aFZhbGlkYXRvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vTWluVmFsaWRhdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9QYXNzd29yZFZhbGlkYXRvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vUGF0dGVyblZhbGlkYXRvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vUmVxdWlyZWRWYWxpZGF0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1N0ZXBWYWxpZGF0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1R5cGVWYWxpZGF0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1VSTFZhbGlkYXRvclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vVmFsaWRhdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9WYWxpZGF0b3JSZWdpc3RyeVwiO1xuIl19
@@ -0,0 +1,306 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.required = required;
4
+ exports.min = min;
5
+ exports.max = max;
6
+ exports.step = step;
7
+ exports.minlength = minlength;
8
+ exports.maxlength = maxlength;
9
+ exports.pattern = pattern;
10
+ exports.email = email;
11
+ exports.url = url;
12
+ exports.type = type;
13
+ exports.date = date;
14
+ exports.password = password;
15
+ exports.list = list;
16
+ exports.set = set;
17
+ require("reflect-metadata");
18
+ const constants_1 = require("./Validators/constants.cjs");
19
+ const strings_1 = require("../utils/strings.cjs");
20
+ const dates_1 = require("../utils/dates.cjs");
21
+ const decorators_1 = require("../utils/decorators.cjs");
22
+ const Validation_1 = require("./Validation.cjs");
23
+ /**
24
+ * @summary Marks the property as required.
25
+ * @description Validators to validate a decorated property must use key {@link ValidationKeys#REQUIRED}
26
+ *
27
+ * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#REQUIRED}
28
+ *
29
+ * @function required
30
+ *
31
+ * @category Decorators
32
+ */
33
+ function required(message = constants_1.DEFAULT_ERROR_MESSAGES.REQUIRED) {
34
+ return (0, decorators_1.propMetadata)(Validation_1.Validation.key(constants_1.ValidationKeys.REQUIRED), {
35
+ message: message,
36
+ });
37
+ }
38
+ /**
39
+ * @summary Defines a minimum value for the property
40
+ * @description Validators to validate a decorated property must use key {@link ValidationKeys#MIN}
41
+ *
42
+ * @param {number | Date} value
43
+ * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#MIN}
44
+ *
45
+ * @function min
46
+ * @memberOf module:decorator-validation.Decorators.Validation
47
+ * @category Decorators
48
+ */
49
+ function min(value, message = constants_1.DEFAULT_ERROR_MESSAGES.MIN) {
50
+ return (0, decorators_1.propMetadata)(Validation_1.Validation.key(constants_1.ValidationKeys.MIN), {
51
+ min: value,
52
+ message: message,
53
+ types: [Number.name, Date.name],
54
+ });
55
+ }
56
+ /**
57
+ * @summary Defines a maximum value for the property
58
+ * @description Validators to validate a decorated property must use key {@link ValidationKeys#MAX}
59
+ *
60
+ * @param {number | Date} value
61
+ * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#MAX}
62
+ *
63
+ * @function max
64
+ * @memberOf module:decorator-validation.Decorators.Validation
65
+ * @category Decorators
66
+ */
67
+ function max(value, message = constants_1.DEFAULT_ERROR_MESSAGES.MAX) {
68
+ return (0, decorators_1.propMetadata)(Validation_1.Validation.key(constants_1.ValidationKeys.MAX), {
69
+ max: value,
70
+ message: message,
71
+ types: [Number.name, Date.name],
72
+ });
73
+ }
74
+ /**
75
+ * @summary Defines a step value for the property
76
+ * @description Validators to validate a decorated property must use key {@link ValidationKeys#STEP}
77
+ *
78
+ * @param {number} value
79
+ * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#STEP}
80
+ *
81
+ * @function step
82
+ * @memberOf module:decorator-validation.Decorators.Validation
83
+ * @category Decorators
84
+ */
85
+ function step(value, message = constants_1.DEFAULT_ERROR_MESSAGES.STEP) {
86
+ return (0, decorators_1.propMetadata)(Validation_1.Validation.key(constants_1.ValidationKeys.STEP), {
87
+ step: value,
88
+ message: message,
89
+ types: [Number.name],
90
+ });
91
+ }
92
+ /**
93
+ * @summary Defines a minimum length for the property
94
+ * @description Validators to validate a decorated property must use key {@link ValidationKeys#MIN_LENGTH}
95
+ *
96
+ * @param {string} value
97
+ * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#MIN_LENGTH}
98
+ *
99
+ * @function minlength
100
+ * @memberOf module:decorator-validation.Decorators.Validation
101
+ * @category Decorators
102
+ */
103
+ function minlength(value, message = constants_1.DEFAULT_ERROR_MESSAGES.MIN_LENGTH) {
104
+ return (0, decorators_1.propMetadata)(Validation_1.Validation.key(constants_1.ValidationKeys.MIN_LENGTH), {
105
+ minLength: value,
106
+ message: message,
107
+ types: [String.name, Array.name, Set.name],
108
+ });
109
+ }
110
+ /**
111
+ * @summary Defines a maximum length for the property
112
+ * @description Validators to validate a decorated property must use key {@link ValidationKeys#MAX_LENGTH}
113
+ *
114
+ * @param {string} value
115
+ * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#MAX_LENGTH}
116
+ *
117
+ * @function maxlength
118
+ * @memberOf module:decorator-validation.Decorators.Validation
119
+ * @category Decorators
120
+ */
121
+ function maxlength(value, message = constants_1.DEFAULT_ERROR_MESSAGES.MAX_LENGTH) {
122
+ return (0, decorators_1.propMetadata)(Validation_1.Validation.key(constants_1.ValidationKeys.MAX_LENGTH), {
123
+ maxLength: value,
124
+ message: message,
125
+ types: [String.name, Array.name, Set.name],
126
+ });
127
+ }
128
+ /**
129
+ * @summary Defines a RegExp pattern the property must respect
130
+ * @description Validators to validate a decorated property must use key {@link ValidationKeys#PATTERN}
131
+ *
132
+ * @param {string} value
133
+ * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#PATTERN}
134
+ *
135
+ * @function pattern
136
+ * @memberOf module:decorator-validation.Decorators.Validation
137
+ * @category Decorators
138
+ */
139
+ function pattern(value, message = constants_1.DEFAULT_ERROR_MESSAGES.PATTERN) {
140
+ return (0, decorators_1.propMetadata)(Validation_1.Validation.key(constants_1.ValidationKeys.PATTERN), {
141
+ pattern: typeof value === "string" ? value : value.toString(),
142
+ message: message,
143
+ types: [String.name],
144
+ });
145
+ }
146
+ /**
147
+ * @summary Defines the property as an email
148
+ * @description Validators to validate a decorated property must use key {@link ValidationKeys#EMAIL}
149
+ *
150
+ * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#EMAIL}
151
+ *
152
+ * @function email
153
+ * @memberOf module:decorator-validation.Decorators.Validation
154
+ * @category Decorators
155
+ */
156
+ function email(message = constants_1.DEFAULT_ERROR_MESSAGES.EMAIL) {
157
+ return (0, decorators_1.propMetadata)(Validation_1.Validation.key(constants_1.ValidationKeys.EMAIL), {
158
+ pattern: constants_1.DEFAULT_PATTERNS.EMAIL,
159
+ message: message,
160
+ types: [String.name],
161
+ });
162
+ }
163
+ /**
164
+ * @summary Defines the property as an URL
165
+ * @description Validators to validate a decorated property must use key {@link ValidationKeys#URL}
166
+ *
167
+ * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#URL}
168
+ *
169
+ * @function url
170
+ * @memberOf module:decorator-validation.Decorators.Validation
171
+ * @category Decorators
172
+ */
173
+ function url(message = constants_1.DEFAULT_ERROR_MESSAGES.URL) {
174
+ return (0, decorators_1.propMetadata)(Validation_1.Validation.key(constants_1.ValidationKeys.URL), {
175
+ pattern: constants_1.DEFAULT_PATTERNS.URL,
176
+ message: message,
177
+ types: [String.name],
178
+ });
179
+ }
180
+ /**
181
+ * @summary Enforces type verification
182
+ * @description Validators to validate a decorated property must use key {@link ValidationKeys#TYPE}
183
+ *
184
+ * @param {string[] | string} types accepted types
185
+ * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#TYPE}
186
+ *
187
+ * @function type
188
+ * @memberOf module:decorator-validation.Decorators.Validation
189
+ * @category Decorators
190
+ */
191
+ function type(types, message = constants_1.DEFAULT_ERROR_MESSAGES.TYPE) {
192
+ return (0, decorators_1.propMetadata)(Validation_1.Validation.key(constants_1.ValidationKeys.TYPE), {
193
+ customTypes: types,
194
+ message: message,
195
+ });
196
+ }
197
+ /**
198
+ * @summary Date Handler Decorator
199
+ * @description Validators to validate a decorated property must use key {@link ValidationKeys#DATE}
200
+ *
201
+ * Will enforce serialization according to the selected format
202
+ *
203
+ * @param {string} format accepted format according to {@link formatDate}
204
+ * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#DATE}
205
+ * @param {Constructor<Validator>} [validator] the Validator to be used. Defaults to {@link DateValidator}
206
+ *
207
+ * @function date
208
+ *
209
+ * @memberOf module:decorator-validation.Decorators.Validation
210
+ * @category Decorators
211
+ */
212
+ function date(format = "dd/MM/yyyy", message = constants_1.DEFAULT_ERROR_MESSAGES.DATE) {
213
+ return (target, propertyKey) => {
214
+ (0, decorators_1.propMetadata)(Validation_1.Validation.key(constants_1.ValidationKeys.DATE), {
215
+ format: format,
216
+ message: message,
217
+ types: [Date.name],
218
+ })(target, propertyKey);
219
+ const values = new WeakMap();
220
+ Object.defineProperty(target, propertyKey, {
221
+ configurable: false,
222
+ set(newValue) {
223
+ const descriptor = Object.getOwnPropertyDescriptor(this, propertyKey);
224
+ if (!descriptor || descriptor.configurable)
225
+ Object.defineProperty(this, propertyKey, {
226
+ enumerable: true,
227
+ configurable: false,
228
+ get: () => values.get(this),
229
+ set: (newValue) => {
230
+ let val;
231
+ try {
232
+ val = (0, dates_1.parseDate)(format, newValue);
233
+ values.set(this, val);
234
+ }
235
+ catch (e) {
236
+ console.error((0, strings_1.sf)("Failed to parse date: {0}", e.message || e));
237
+ }
238
+ },
239
+ });
240
+ this[propertyKey] = newValue;
241
+ },
242
+ get() {
243
+ console.log("here");
244
+ },
245
+ });
246
+ };
247
+ }
248
+ /**
249
+ * @summary Password Handler Decorator
250
+ * @description Validators to validate a decorated property must use key {@link ValidationKeys#PASSWORD}
251
+ *
252
+ * @param {RegExp} [pattern] defaults to {@link PasswordPatterns#CHAR8_ONE_OF_EACH}
253
+ * @param {string} [message] the error message. Defaults to {@link DEFAULT_ERROR_MESSAGES#PASSWORD}
254
+ * @param {Constructor<Validator>} [validator] Defaults to {@link PasswordValidator}
255
+ *
256
+ * @function password
257
+ *
258
+ * @memberOf module:decorator-validation.Decorators.Validation
259
+ * @category Decorators
260
+ */
261
+ function password(pattern = constants_1.DEFAULT_PATTERNS.PASSWORD.CHAR8_ONE_OF_EACH, message = constants_1.DEFAULT_ERROR_MESSAGES.PASSWORD) {
262
+ return (0, decorators_1.propMetadata)(Validation_1.Validation.key(constants_1.ValidationKeys.PASSWORD), {
263
+ pattern: pattern,
264
+ message: message,
265
+ types: [String.name],
266
+ });
267
+ }
268
+ /**
269
+ * @summary List Decorator
270
+ * @description Also sets the {@link type} to the provided collection
271
+ *
272
+ * @param {ModelConstructor} clazz
273
+ * @param {string} [collection] The collection being used. defaults to Array
274
+ * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#LIST}
275
+ * @param {Constructor<Validator>} [validator] defaults to {@link ListValidator}
276
+ *
277
+ * @function list
278
+ *
279
+ * @memberOf module:decorator-validation.Decorators.Validation
280
+ * @category Decorators
281
+ */
282
+ function list(clazz, collection = "Array", message = constants_1.DEFAULT_ERROR_MESSAGES.LIST) {
283
+ return (0, decorators_1.propMetadata)(Validation_1.Validation.key(constants_1.ValidationKeys.LIST), {
284
+ clazz: Array.isArray(clazz) ? clazz.map((c) => c.name) : [clazz.name],
285
+ type: collection,
286
+ message: message,
287
+ });
288
+ }
289
+ /**
290
+ * @summary Set Decorator
291
+ * @description Wrapper for {@link list} with the 'Set' Collection
292
+ *
293
+ * @param {ModelConstructor} clazz
294
+ * @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#LIST}
295
+ * @param {Constructor<Validator>} [validator]
296
+ *
297
+ * @function set
298
+ *
299
+ * @memberOf module:decorator-validation.Decorators.Validation
300
+ * @category Decorators
301
+ */
302
+ function set(clazz, message = constants_1.DEFAULT_ERROR_MESSAGES.LIST) {
303
+ return list(clazz, "Set", message);
304
+ }
305
+
306
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL2RlY29yYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUF1QkEsNEJBT0M7QUFhRCxrQkFTQztBQWFELGtCQVNDO0FBYUQsb0JBU0M7QUFhRCw4QkFZQztBQWFELDhCQVlDO0FBYUQsMEJBWUM7QUFZRCxzQkFTQztBQVlELGtCQU1DO0FBYUQsb0JBUUM7QUFpQkQsb0JBdUNDO0FBZUQsNEJBU0M7QUFnQkQsb0JBVUM7QUFlRCxrQkFLQztBQXJXRCw0QkFBMEI7QUFFMUIsc0RBSWdDO0FBQ2hDLDhDQUFzQztBQUV0QywwQ0FBMkM7QUFDM0Msb0RBQW1EO0FBQ25ELDZDQUEwQztBQUUxQzs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixRQUFRLENBQUMsVUFBa0Isa0NBQXNCLENBQUMsUUFBUTtJQUN4RSxPQUFPLElBQUEseUJBQVksRUFDakIsdUJBQVUsQ0FBQyxHQUFHLENBQUMsMEJBQWMsQ0FBQyxRQUFRLENBQUMsRUFDdkM7UUFDRSxPQUFPLEVBQUUsT0FBTztLQUNqQixDQUNGLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQWdCLEdBQUcsQ0FDakIsS0FBNkIsRUFDN0IsVUFBa0Isa0NBQXNCLENBQUMsR0FBRztJQUU1QyxPQUFPLElBQUEseUJBQVksRUFBcUIsdUJBQVUsQ0FBQyxHQUFHLENBQUMsMEJBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUMxRSxHQUFHLEVBQUUsS0FBSztRQUNWLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQztLQUNoQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQWdCLEdBQUcsQ0FDakIsS0FBNkIsRUFDN0IsVUFBa0Isa0NBQXNCLENBQUMsR0FBRztJQUU1QyxPQUFPLElBQUEseUJBQVksRUFBcUIsdUJBQVUsQ0FBQyxHQUFHLENBQUMsMEJBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUMxRSxHQUFHLEVBQUUsS0FBSztRQUNWLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQztLQUNoQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQWdCLElBQUksQ0FDbEIsS0FBYSxFQUNiLFVBQWtCLGtDQUFzQixDQUFDLElBQUk7SUFFN0MsT0FBTyxJQUFBLHlCQUFZLEVBQXFCLHVCQUFVLENBQUMsR0FBRyxDQUFDLDBCQUFjLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDM0UsSUFBSSxFQUFFLEtBQUs7UUFDWCxPQUFPLEVBQUUsT0FBTztRQUNoQixLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO0tBQ3JCLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsU0FBZ0IsU0FBUyxDQUN2QixLQUFhLEVBQ2IsVUFBa0Isa0NBQXNCLENBQUMsVUFBVTtJQUVuRCxPQUFPLElBQUEseUJBQVksRUFDakIsdUJBQVUsQ0FBQyxHQUFHLENBQUMsMEJBQWMsQ0FBQyxVQUFVLENBQUMsRUFDekM7UUFDRSxTQUFTLEVBQUUsS0FBSztRQUNoQixPQUFPLEVBQUUsT0FBTztRQUNoQixLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQztLQUMzQyxDQUNGLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILFNBQWdCLFNBQVMsQ0FDdkIsS0FBYSxFQUNiLFVBQWtCLGtDQUFzQixDQUFDLFVBQVU7SUFFbkQsT0FBTyxJQUFBLHlCQUFZLEVBQ2pCLHVCQUFVLENBQUMsR0FBRyxDQUFDLDBCQUFjLENBQUMsVUFBVSxDQUFDLEVBQ3pDO1FBQ0UsU0FBUyxFQUFFLEtBQUs7UUFDaEIsT0FBTyxFQUFFLE9BQU87UUFDaEIsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUM7S0FDM0MsQ0FDRixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxTQUFnQixPQUFPLENBQ3JCLEtBQXNCLEVBQ3RCLFVBQWtCLGtDQUFzQixDQUFDLE9BQU87SUFFaEQsT0FBTyxJQUFBLHlCQUFZLEVBQ2pCLHVCQUFVLENBQUMsR0FBRyxDQUFDLDBCQUFjLENBQUMsT0FBTyxDQUFDLEVBQ3RDO1FBQ0UsT0FBTyxFQUFFLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO1FBQzdELE9BQU8sRUFBRSxPQUFPO1FBQ2hCLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7S0FDckIsQ0FDRixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLEtBQUssQ0FBQyxVQUFrQixrQ0FBc0IsQ0FBQyxLQUFLO0lBQ2xFLE9BQU8sSUFBQSx5QkFBWSxFQUNqQix1QkFBVSxDQUFDLEdBQUcsQ0FBQywwQkFBYyxDQUFDLEtBQUssQ0FBQyxFQUNwQztRQUNFLE9BQU8sRUFBRSw0QkFBZ0IsQ0FBQyxLQUFLO1FBQy9CLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7S0FDckIsQ0FDRixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLEdBQUcsQ0FBQyxVQUFrQixrQ0FBc0IsQ0FBQyxHQUFHO0lBQzlELE9BQU8sSUFBQSx5QkFBWSxFQUFxQix1QkFBVSxDQUFDLEdBQUcsQ0FBQywwQkFBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQzFFLE9BQU8sRUFBRSw0QkFBZ0IsQ0FBQyxHQUFHO1FBQzdCLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7S0FDckIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxTQUFnQixJQUFJLENBQ2xCLEtBQXdCLEVBQ3hCLFVBQWtCLGtDQUFzQixDQUFDLElBQUk7SUFFN0MsT0FBTyxJQUFBLHlCQUFZLEVBQXFCLHVCQUFVLENBQUMsR0FBRyxDQUFDLDBCQUFjLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDM0UsV0FBVyxFQUFFLEtBQUs7UUFDbEIsT0FBTyxFQUFFLE9BQU87S0FDakIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsU0FBZ0IsSUFBSSxDQUNsQixTQUFpQixZQUFZLEVBQzdCLFVBQWtCLGtDQUFzQixDQUFDLElBQUk7SUFFN0MsT0FBTyxDQUFDLE1BQTJCLEVBQUUsV0FBaUIsRUFBTyxFQUFFO1FBQzdELElBQUEseUJBQVksRUFBQyx1QkFBVSxDQUFDLEdBQUcsQ0FBQywwQkFBYyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2hELE1BQU0sRUFBRSxNQUFNO1lBQ2QsT0FBTyxFQUFFLE9BQU87WUFDaEIsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztTQUNuQixDQUFDLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRXhCLE1BQU0sTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFFN0IsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFO1lBQ3pDLFlBQVksRUFBRSxLQUFLO1lBQ25CLEdBQUcsQ0FBWSxRQUF1QjtnQkFDcEMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztnQkFDdEUsSUFBSSxDQUFDLFVBQVUsSUFBSSxVQUFVLENBQUMsWUFBWTtvQkFDeEMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO3dCQUN2QyxVQUFVLEVBQUUsSUFBSTt3QkFDaEIsWUFBWSxFQUFFLEtBQUs7d0JBQ25CLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQzt3QkFDM0IsR0FBRyxFQUFFLENBQUMsUUFBZ0MsRUFBRSxFQUFFOzRCQUN4QyxJQUFJLEdBQXFCLENBQUM7NEJBQzFCLElBQUksQ0FBQztnQ0FDSCxHQUFHLEdBQUcsSUFBQSxpQkFBUyxFQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztnQ0FDbEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7NEJBQ3hCLENBQUM7NEJBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztnQ0FDaEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFBLFlBQUUsRUFBQywyQkFBMkIsRUFBRSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7NEJBQ2pFLENBQUM7d0JBQ0gsQ0FBQztxQkFDRixDQUFDLENBQUM7Z0JBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLFFBQVEsQ0FBQztZQUMvQixDQUFDO1lBQ0QsR0FBRztnQkFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3RCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsU0FBZ0IsUUFBUSxDQUN0QixVQUFrQiw0QkFBZ0IsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEVBQzdELFVBQWtCLGtDQUFzQixDQUFDLFFBQVE7SUFFakQsT0FBTyxJQUFBLHlCQUFZLEVBQUMsdUJBQVUsQ0FBQyxHQUFHLENBQUMsMEJBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUMzRCxPQUFPLEVBQUUsT0FBTztRQUNoQixPQUFPLEVBQUUsT0FBTztRQUNoQixLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO0tBQ3JCLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsU0FBZ0IsSUFBSSxDQUNsQixLQUFzRCxFQUN0RCxhQUE4QixPQUFPLEVBQ3JDLFVBQWtCLGtDQUFzQixDQUFDLElBQUk7SUFFN0MsT0FBTyxJQUFBLHlCQUFZLEVBQUMsdUJBQVUsQ0FBQyxHQUFHLENBQUMsMEJBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUN2RCxLQUFLLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDckUsSUFBSSxFQUFFLFVBQVU7UUFDaEIsT0FBTyxFQUFFLE9BQU87S0FDakIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILFNBQWdCLEdBQUcsQ0FDakIsS0FBNEIsRUFDNUIsVUFBa0Isa0NBQXNCLENBQUMsSUFBSTtJQUU3QyxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3JDLENBQUMiLCJmaWxlIjoidmFsaWRhdGlvbi9kZWNvcmF0b3JzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwicmVmbGVjdC1tZXRhZGF0YVwiO1xuaW1wb3J0IHsgVmFsaWRhdGlvbk1ldGFkYXRhIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7XG4gIERFRkFVTFRfRVJST1JfTUVTU0FHRVMsXG4gIERFRkFVTFRfUEFUVEVSTlMsXG4gIFZhbGlkYXRpb25LZXlzLFxufSBmcm9tIFwiLi9WYWxpZGF0b3JzL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgc2YgfSBmcm9tIFwiLi4vdXRpbHMvc3RyaW5nc1wiO1xuaW1wb3J0IHsgTW9kZWxDb25zdHJ1Y3RvciB9IGZyb20gXCIuLi9tb2RlbC90eXBlc1wiO1xuaW1wb3J0IHsgcGFyc2VEYXRlIH0gZnJvbSBcIi4uL3V0aWxzL2RhdGVzXCI7XG5pbXBvcnQgeyBwcm9wTWV0YWRhdGEgfSBmcm9tIFwiLi4vdXRpbHMvZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgVmFsaWRhdGlvbiB9IGZyb20gXCIuL1ZhbGlkYXRpb25cIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBNYXJrcyB0aGUgcHJvcGVydHkgYXMgcmVxdWlyZWQuXG4gKiBAZGVzY3JpcHRpb24gVmFsaWRhdG9ycyB0byB2YWxpZGF0ZSBhIGRlY29yYXRlZCBwcm9wZXJ0eSBtdXN0IHVzZSBrZXkge0BsaW5rIFZhbGlkYXRpb25LZXlzI1JFUVVJUkVEfVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZV0gdGhlIGVycm9yIG1lc3NhZ2UuIERlZmF1bHRzIHRvIHtAbGluayBERUZBVUxUX0VSUk9SX01FU1NBR0VTI1JFUVVJUkVEfVxuICpcbiAqIEBmdW5jdGlvbiByZXF1aXJlZFxuICpcbiAqIEBjYXRlZ29yeSBEZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXF1aXJlZChtZXNzYWdlOiBzdHJpbmcgPSBERUZBVUxUX0VSUk9SX01FU1NBR0VTLlJFUVVJUkVEKSB7XG4gIHJldHVybiBwcm9wTWV0YWRhdGE8VmFsaWRhdGlvbk1ldGFkYXRhPihcbiAgICBWYWxpZGF0aW9uLmtleShWYWxpZGF0aW9uS2V5cy5SRVFVSVJFRCksXG4gICAge1xuICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICB9XG4gICk7XG59XG5cbi8qKlxuICogQHN1bW1hcnkgRGVmaW5lcyBhIG1pbmltdW0gdmFsdWUgZm9yIHRoZSBwcm9wZXJ0eVxuICogQGRlc2NyaXB0aW9uIFZhbGlkYXRvcnMgdG8gdmFsaWRhdGUgYSBkZWNvcmF0ZWQgcHJvcGVydHkgbXVzdCB1c2Uga2V5IHtAbGluayBWYWxpZGF0aW9uS2V5cyNNSU59XG4gKlxuICogQHBhcmFtIHtudW1iZXIgfCBEYXRlfSB2YWx1ZVxuICogQHBhcmFtIHtzdHJpbmd9IFttZXNzYWdlXSB0aGUgZXJyb3IgbWVzc2FnZS4gRGVmYXVsdHMgdG8ge0BsaW5rIERFRkFVTFRfRVJST1JfTUVTU0FHRVMjTUlOfVxuICpcbiAqIEBmdW5jdGlvbiBtaW5cbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdG9yLXZhbGlkYXRpb24uRGVjb3JhdG9ycy5WYWxpZGF0aW9uXG4gKiBAY2F0ZWdvcnkgRGVjb3JhdG9yc1xuICovXG5leHBvcnQgZnVuY3Rpb24gbWluKFxuICB2YWx1ZTogbnVtYmVyIHwgRGF0ZSB8IHN0cmluZyxcbiAgbWVzc2FnZTogc3RyaW5nID0gREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5NSU5cbikge1xuICByZXR1cm4gcHJvcE1ldGFkYXRhPFZhbGlkYXRpb25NZXRhZGF0YT4oVmFsaWRhdGlvbi5rZXkoVmFsaWRhdGlvbktleXMuTUlOKSwge1xuICAgIG1pbjogdmFsdWUsXG4gICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICB0eXBlczogW051bWJlci5uYW1lLCBEYXRlLm5hbWVdLFxuICB9KTtcbn1cblxuLyoqXG4gKiBAc3VtbWFyeSBEZWZpbmVzIGEgbWF4aW11bSB2YWx1ZSBmb3IgdGhlIHByb3BlcnR5XG4gKiBAZGVzY3JpcHRpb24gVmFsaWRhdG9ycyB0byB2YWxpZGF0ZSBhIGRlY29yYXRlZCBwcm9wZXJ0eSBtdXN0IHVzZSBrZXkge0BsaW5rIFZhbGlkYXRpb25LZXlzI01BWH1cbiAqXG4gKiBAcGFyYW0ge251bWJlciB8IERhdGV9IHZhbHVlXG4gKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2VdIHRoZSBlcnJvciBtZXNzYWdlLiBEZWZhdWx0cyB0byB7QGxpbmsgREVGQVVMVF9FUlJPUl9NRVNTQUdFUyNNQVh9XG4gKlxuICogQGZ1bmN0aW9uIG1heFxuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvbi5EZWNvcmF0b3JzLlZhbGlkYXRpb25cbiAqIEBjYXRlZ29yeSBEZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXgoXG4gIHZhbHVlOiBudW1iZXIgfCBEYXRlIHwgc3RyaW5nLFxuICBtZXNzYWdlOiBzdHJpbmcgPSBERUZBVUxUX0VSUk9SX01FU1NBR0VTLk1BWFxuKSB7XG4gIHJldHVybiBwcm9wTWV0YWRhdGE8VmFsaWRhdGlvbk1ldGFkYXRhPihWYWxpZGF0aW9uLmtleShWYWxpZGF0aW9uS2V5cy5NQVgpLCB7XG4gICAgbWF4OiB2YWx1ZSxcbiAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgIHR5cGVzOiBbTnVtYmVyLm5hbWUsIERhdGUubmFtZV0sXG4gIH0pO1xufVxuXG4vKipcbiAqIEBzdW1tYXJ5IERlZmluZXMgYSBzdGVwIHZhbHVlIGZvciB0aGUgcHJvcGVydHlcbiAqIEBkZXNjcmlwdGlvbiBWYWxpZGF0b3JzIHRvIHZhbGlkYXRlIGEgZGVjb3JhdGVkIHByb3BlcnR5IG11c3QgdXNlIGtleSB7QGxpbmsgVmFsaWRhdGlvbktleXMjU1RFUH1cbiAqXG4gKiBAcGFyYW0ge251bWJlcn0gdmFsdWVcbiAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZV0gdGhlIGVycm9yIG1lc3NhZ2UuIERlZmF1bHRzIHRvIHtAbGluayBERUZBVUxUX0VSUk9SX01FU1NBR0VTI1NURVB9XG4gKlxuICogQGZ1bmN0aW9uIHN0ZXBcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdG9yLXZhbGlkYXRpb24uRGVjb3JhdG9ycy5WYWxpZGF0aW9uXG4gKiBAY2F0ZWdvcnkgRGVjb3JhdG9yc1xuICovXG5leHBvcnQgZnVuY3Rpb24gc3RlcChcbiAgdmFsdWU6IG51bWJlcixcbiAgbWVzc2FnZTogc3RyaW5nID0gREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5TVEVQXG4pIHtcbiAgcmV0dXJuIHByb3BNZXRhZGF0YTxWYWxpZGF0aW9uTWV0YWRhdGE+KFZhbGlkYXRpb24ua2V5KFZhbGlkYXRpb25LZXlzLlNURVApLCB7XG4gICAgc3RlcDogdmFsdWUsXG4gICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICB0eXBlczogW051bWJlci5uYW1lXSxcbiAgfSk7XG59XG5cbi8qKlxuICogQHN1bW1hcnkgRGVmaW5lcyBhIG1pbmltdW0gbGVuZ3RoIGZvciB0aGUgcHJvcGVydHlcbiAqIEBkZXNjcmlwdGlvbiBWYWxpZGF0b3JzIHRvIHZhbGlkYXRlIGEgZGVjb3JhdGVkIHByb3BlcnR5IG11c3QgdXNlIGtleSB7QGxpbmsgVmFsaWRhdGlvbktleXMjTUlOX0xFTkdUSH1cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZV0gdGhlIGVycm9yIG1lc3NhZ2UuIERlZmF1bHRzIHRvIHtAbGluayBERUZBVUxUX0VSUk9SX01FU1NBR0VTI01JTl9MRU5HVEh9XG4gKlxuICogQGZ1bmN0aW9uIG1pbmxlbmd0aFxuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvbi5EZWNvcmF0b3JzLlZhbGlkYXRpb25cbiAqIEBjYXRlZ29yeSBEZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtaW5sZW5ndGgoXG4gIHZhbHVlOiBudW1iZXIsXG4gIG1lc3NhZ2U6IHN0cmluZyA9IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuTUlOX0xFTkdUSFxuKSB7XG4gIHJldHVybiBwcm9wTWV0YWRhdGE8VmFsaWRhdGlvbk1ldGFkYXRhPihcbiAgICBWYWxpZGF0aW9uLmtleShWYWxpZGF0aW9uS2V5cy5NSU5fTEVOR1RIKSxcbiAgICB7XG4gICAgICBtaW5MZW5ndGg6IHZhbHVlLFxuICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgIHR5cGVzOiBbU3RyaW5nLm5hbWUsIEFycmF5Lm5hbWUsIFNldC5uYW1lXSxcbiAgICB9XG4gICk7XG59XG5cbi8qKlxuICogQHN1bW1hcnkgRGVmaW5lcyBhIG1heGltdW0gbGVuZ3RoIGZvciB0aGUgcHJvcGVydHlcbiAqIEBkZXNjcmlwdGlvbiBWYWxpZGF0b3JzIHRvIHZhbGlkYXRlIGEgZGVjb3JhdGVkIHByb3BlcnR5IG11c3QgdXNlIGtleSB7QGxpbmsgVmFsaWRhdGlvbktleXMjTUFYX0xFTkdUSH1cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZV0gdGhlIGVycm9yIG1lc3NhZ2UuIERlZmF1bHRzIHRvIHtAbGluayBERUZBVUxUX0VSUk9SX01FU1NBR0VTI01BWF9MRU5HVEh9XG4gKlxuICogQGZ1bmN0aW9uIG1heGxlbmd0aFxuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvbi5EZWNvcmF0b3JzLlZhbGlkYXRpb25cbiAqIEBjYXRlZ29yeSBEZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXhsZW5ndGgoXG4gIHZhbHVlOiBudW1iZXIsXG4gIG1lc3NhZ2U6IHN0cmluZyA9IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuTUFYX0xFTkdUSFxuKSB7XG4gIHJldHVybiBwcm9wTWV0YWRhdGE8VmFsaWRhdGlvbk1ldGFkYXRhPihcbiAgICBWYWxpZGF0aW9uLmtleShWYWxpZGF0aW9uS2V5cy5NQVhfTEVOR1RIKSxcbiAgICB7XG4gICAgICBtYXhMZW5ndGg6IHZhbHVlLFxuICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgIHR5cGVzOiBbU3RyaW5nLm5hbWUsIEFycmF5Lm5hbWUsIFNldC5uYW1lXSxcbiAgICB9XG4gICk7XG59XG5cbi8qKlxuICogQHN1bW1hcnkgRGVmaW5lcyBhIFJlZ0V4cCBwYXR0ZXJuIHRoZSBwcm9wZXJ0eSBtdXN0IHJlc3BlY3RcbiAqIEBkZXNjcmlwdGlvbiBWYWxpZGF0b3JzIHRvIHZhbGlkYXRlIGEgZGVjb3JhdGVkIHByb3BlcnR5IG11c3QgdXNlIGtleSB7QGxpbmsgVmFsaWRhdGlvbktleXMjUEFUVEVSTn1cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZV0gdGhlIGVycm9yIG1lc3NhZ2UuIERlZmF1bHRzIHRvIHtAbGluayBERUZBVUxUX0VSUk9SX01FU1NBR0VTI1BBVFRFUk59XG4gKlxuICogQGZ1bmN0aW9uIHBhdHRlcm5cbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdG9yLXZhbGlkYXRpb24uRGVjb3JhdG9ycy5WYWxpZGF0aW9uXG4gKiBAY2F0ZWdvcnkgRGVjb3JhdG9yc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcGF0dGVybihcbiAgdmFsdWU6IFJlZ0V4cCB8IHN0cmluZyxcbiAgbWVzc2FnZTogc3RyaW5nID0gREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5QQVRURVJOXG4pIHtcbiAgcmV0dXJuIHByb3BNZXRhZGF0YTxWYWxpZGF0aW9uTWV0YWRhdGE+KFxuICAgIFZhbGlkYXRpb24ua2V5KFZhbGlkYXRpb25LZXlzLlBBVFRFUk4pLFxuICAgIHtcbiAgICAgIHBhdHRlcm46IHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiA/IHZhbHVlIDogdmFsdWUudG9TdHJpbmcoKSxcbiAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICB0eXBlczogW1N0cmluZy5uYW1lXSxcbiAgICB9XG4gICk7XG59XG5cbi8qKlxuICogQHN1bW1hcnkgRGVmaW5lcyB0aGUgcHJvcGVydHkgYXMgYW4gZW1haWxcbiAqIEBkZXNjcmlwdGlvbiBWYWxpZGF0b3JzIHRvIHZhbGlkYXRlIGEgZGVjb3JhdGVkIHByb3BlcnR5IG11c3QgdXNlIGtleSB7QGxpbmsgVmFsaWRhdGlvbktleXMjRU1BSUx9XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IFttZXNzYWdlXSB0aGUgZXJyb3IgbWVzc2FnZS4gRGVmYXVsdHMgdG8ge0BsaW5rIERFRkFVTFRfRVJST1JfTUVTU0FHRVMjRU1BSUx9XG4gKlxuICogQGZ1bmN0aW9uIGVtYWlsXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRlY29yYXRvci12YWxpZGF0aW9uLkRlY29yYXRvcnMuVmFsaWRhdGlvblxuICogQGNhdGVnb3J5IERlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVtYWlsKG1lc3NhZ2U6IHN0cmluZyA9IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuRU1BSUwpIHtcbiAgcmV0dXJuIHByb3BNZXRhZGF0YTxWYWxpZGF0aW9uTWV0YWRhdGE+KFxuICAgIFZhbGlkYXRpb24ua2V5KFZhbGlkYXRpb25LZXlzLkVNQUlMKSxcbiAgICB7XG4gICAgICBwYXR0ZXJuOiBERUZBVUxUX1BBVFRFUk5TLkVNQUlMLFxuICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgIHR5cGVzOiBbU3RyaW5nLm5hbWVdLFxuICAgIH1cbiAgKTtcbn1cblxuLyoqXG4gKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSBwcm9wZXJ0eSBhcyBhbiBVUkxcbiAqIEBkZXNjcmlwdGlvbiBWYWxpZGF0b3JzIHRvIHZhbGlkYXRlIGEgZGVjb3JhdGVkIHByb3BlcnR5IG11c3QgdXNlIGtleSB7QGxpbmsgVmFsaWRhdGlvbktleXMjVVJMfVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZV0gdGhlIGVycm9yIG1lc3NhZ2UuIERlZmF1bHRzIHRvIHtAbGluayBERUZBVUxUX0VSUk9SX01FU1NBR0VTI1VSTH1cbiAqXG4gKiBAZnVuY3Rpb24gdXJsXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRlY29yYXRvci12YWxpZGF0aW9uLkRlY29yYXRvcnMuVmFsaWRhdGlvblxuICogQGNhdGVnb3J5IERlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVybChtZXNzYWdlOiBzdHJpbmcgPSBERUZBVUxUX0VSUk9SX01FU1NBR0VTLlVSTCkge1xuICByZXR1cm4gcHJvcE1ldGFkYXRhPFZhbGlkYXRpb25NZXRhZGF0YT4oVmFsaWRhdGlvbi5rZXkoVmFsaWRhdGlvbktleXMuVVJMKSwge1xuICAgIHBhdHRlcm46IERFRkFVTFRfUEFUVEVSTlMuVVJMLFxuICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgdHlwZXM6IFtTdHJpbmcubmFtZV0sXG4gIH0pO1xufVxuXG4vKipcbiAqIEBzdW1tYXJ5IEVuZm9yY2VzIHR5cGUgdmVyaWZpY2F0aW9uXG4gKiBAZGVzY3JpcHRpb24gVmFsaWRhdG9ycyB0byB2YWxpZGF0ZSBhIGRlY29yYXRlZCBwcm9wZXJ0eSBtdXN0IHVzZSBrZXkge0BsaW5rIFZhbGlkYXRpb25LZXlzI1RZUEV9XG4gKlxuICogQHBhcmFtIHtzdHJpbmdbXSB8IHN0cmluZ30gdHlwZXMgYWNjZXB0ZWQgdHlwZXNcbiAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZV0gdGhlIGVycm9yIG1lc3NhZ2UuIERlZmF1bHRzIHRvIHtAbGluayBERUZBVUxUX0VSUk9SX01FU1NBR0VTI1RZUEV9XG4gKlxuICogQGZ1bmN0aW9uIHR5cGVcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdG9yLXZhbGlkYXRpb24uRGVjb3JhdG9ycy5WYWxpZGF0aW9uXG4gKiBAY2F0ZWdvcnkgRGVjb3JhdG9yc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdHlwZShcbiAgdHlwZXM6IHN0cmluZ1tdIHwgc3RyaW5nLFxuICBtZXNzYWdlOiBzdHJpbmcgPSBERUZBVUxUX0VSUk9SX01FU1NBR0VTLlRZUEVcbikge1xuICByZXR1cm4gcHJvcE1ldGFkYXRhPFZhbGlkYXRpb25NZXRhZGF0YT4oVmFsaWRhdGlvbi5rZXkoVmFsaWRhdGlvbktleXMuVFlQRSksIHtcbiAgICBjdXN0b21UeXBlczogdHlwZXMsXG4gICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgfSk7XG59XG5cbi8qKlxuICogQHN1bW1hcnkgRGF0ZSBIYW5kbGVyIERlY29yYXRvclxuICogQGRlc2NyaXB0aW9uIFZhbGlkYXRvcnMgdG8gdmFsaWRhdGUgYSBkZWNvcmF0ZWQgcHJvcGVydHkgbXVzdCB1c2Uga2V5IHtAbGluayBWYWxpZGF0aW9uS2V5cyNEQVRFfVxuICpcbiAqIFdpbGwgZW5mb3JjZSBzZXJpYWxpemF0aW9uIGFjY29yZGluZyB0byB0aGUgc2VsZWN0ZWQgZm9ybWF0XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGZvcm1hdCBhY2NlcHRlZCBmb3JtYXQgYWNjb3JkaW5nIHRvIHtAbGluayBmb3JtYXREYXRlfVxuICogQHBhcmFtIHtzdHJpbmd9IFttZXNzYWdlXSB0aGUgZXJyb3IgbWVzc2FnZS4gRGVmYXVsdHMgdG8ge0BsaW5rIERFRkFVTFRfRVJST1JfTUVTU0FHRVMjREFURX1cbiAqIEBwYXJhbSB7Q29uc3RydWN0b3I8VmFsaWRhdG9yPn0gW3ZhbGlkYXRvcl0gdGhlIFZhbGlkYXRvciB0byBiZSB1c2VkLiBEZWZhdWx0cyB0byB7QGxpbmsgRGF0ZVZhbGlkYXRvcn1cbiAqXG4gKiBAZnVuY3Rpb24gZGF0ZVxuICpcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdG9yLXZhbGlkYXRpb24uRGVjb3JhdG9ycy5WYWxpZGF0aW9uXG4gKiBAY2F0ZWdvcnkgRGVjb3JhdG9yc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZGF0ZShcbiAgZm9ybWF0OiBzdHJpbmcgPSBcImRkL01NL3l5eXlcIixcbiAgbWVzc2FnZTogc3RyaW5nID0gREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5EQVRFXG4pIHtcbiAgcmV0dXJuICh0YXJnZXQ6IFJlY29yZDxzdHJpbmcsIGFueT4sIHByb3BlcnR5S2V5PzogYW55KTogYW55ID0+IHtcbiAgICBwcm9wTWV0YWRhdGEoVmFsaWRhdGlvbi5rZXkoVmFsaWRhdGlvbktleXMuREFURSksIHtcbiAgICAgIGZvcm1hdDogZm9ybWF0LFxuICAgICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICAgIHR5cGVzOiBbRGF0ZS5uYW1lXSxcbiAgICB9KSh0YXJnZXQsIHByb3BlcnR5S2V5KTtcblxuICAgIGNvbnN0IHZhbHVlcyA9IG5ldyBXZWFrTWFwKCk7XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBwcm9wZXJ0eUtleSwge1xuICAgICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICAgIHNldCh0aGlzOiBhbnksIG5ld1ZhbHVlOiBzdHJpbmcgfCBEYXRlKSB7XG4gICAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXMsIHByb3BlcnR5S2V5KTtcbiAgICAgICAgaWYgKCFkZXNjcmlwdG9yIHx8IGRlc2NyaXB0b3IuY29uZmlndXJhYmxlKVxuICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBwcm9wZXJ0eUtleSwge1xuICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBnZXQ6ICgpID0+IHZhbHVlcy5nZXQodGhpcyksXG4gICAgICAgICAgICBzZXQ6IChuZXdWYWx1ZTogc3RyaW5nIHwgRGF0ZSB8IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgICBsZXQgdmFsOiBEYXRlIHwgdW5kZWZpbmVkO1xuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHZhbCA9IHBhcnNlRGF0ZShmb3JtYXQsIG5ld1ZhbHVlKTtcbiAgICAgICAgICAgICAgICB2YWx1ZXMuc2V0KHRoaXMsIHZhbCk7XG4gICAgICAgICAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3Ioc2YoXCJGYWlsZWQgdG8gcGFyc2UgZGF0ZTogezB9XCIsIGUubWVzc2FnZSB8fCBlKSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIHRoaXNbcHJvcGVydHlLZXldID0gbmV3VmFsdWU7XG4gICAgICB9LFxuICAgICAgZ2V0KCkge1xuICAgICAgICBjb25zb2xlLmxvZyhcImhlcmVcIik7XG4gICAgICB9LFxuICAgIH0pO1xuICB9O1xufVxuXG4vKipcbiAqIEBzdW1tYXJ5IFBhc3N3b3JkIEhhbmRsZXIgRGVjb3JhdG9yXG4gKiBAZGVzY3JpcHRpb24gVmFsaWRhdG9ycyB0byB2YWxpZGF0ZSBhIGRlY29yYXRlZCBwcm9wZXJ0eSBtdXN0IHVzZSBrZXkge0BsaW5rIFZhbGlkYXRpb25LZXlzI1BBU1NXT1JEfVxuICpcbiAqIEBwYXJhbSB7UmVnRXhwfSBbcGF0dGVybl0gZGVmYXVsdHMgdG8ge0BsaW5rIFBhc3N3b3JkUGF0dGVybnMjQ0hBUjhfT05FX09GX0VBQ0h9XG4gKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2VdIHRoZSBlcnJvciBtZXNzYWdlLiBEZWZhdWx0cyB0byB7QGxpbmsgREVGQVVMVF9FUlJPUl9NRVNTQUdFUyNQQVNTV09SRH1cbiAqIEBwYXJhbSB7Q29uc3RydWN0b3I8VmFsaWRhdG9yPn0gW3ZhbGlkYXRvcl0gRGVmYXVsdHMgdG8ge0BsaW5rIFBhc3N3b3JkVmFsaWRhdG9yfVxuICpcbiAqIEBmdW5jdGlvbiBwYXNzd29yZFxuICpcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdG9yLXZhbGlkYXRpb24uRGVjb3JhdG9ycy5WYWxpZGF0aW9uXG4gKiBAY2F0ZWdvcnkgRGVjb3JhdG9yc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcGFzc3dvcmQoXG4gIHBhdHRlcm46IFJlZ0V4cCA9IERFRkFVTFRfUEFUVEVSTlMuUEFTU1dPUkQuQ0hBUjhfT05FX09GX0VBQ0gsXG4gIG1lc3NhZ2U6IHN0cmluZyA9IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuUEFTU1dPUkRcbikge1xuICByZXR1cm4gcHJvcE1ldGFkYXRhKFZhbGlkYXRpb24ua2V5KFZhbGlkYXRpb25LZXlzLlBBU1NXT1JEKSwge1xuICAgIHBhdHRlcm46IHBhdHRlcm4sXG4gICAgbWVzc2FnZTogbWVzc2FnZSxcbiAgICB0eXBlczogW1N0cmluZy5uYW1lXSxcbiAgfSk7XG59XG5cbi8qKlxuICogQHN1bW1hcnkgTGlzdCBEZWNvcmF0b3JcbiAqIEBkZXNjcmlwdGlvbiBBbHNvIHNldHMgdGhlIHtAbGluayB0eXBlfSB0byB0aGUgcHJvdmlkZWQgY29sbGVjdGlvblxuICpcbiAqIEBwYXJhbSB7TW9kZWxDb25zdHJ1Y3Rvcn0gY2xhenpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbY29sbGVjdGlvbl0gVGhlIGNvbGxlY3Rpb24gYmVpbmcgdXNlZC4gZGVmYXVsdHMgdG8gQXJyYXlcbiAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZV0gZGVmYXVsdHMgdG8ge0BsaW5rIERFRkFVTFRfRVJST1JfTUVTU0FHRVMjTElTVH1cbiAqIEBwYXJhbSB7Q29uc3RydWN0b3I8VmFsaWRhdG9yPn0gW3ZhbGlkYXRvcl0gZGVmYXVsdHMgdG8ge0BsaW5rIExpc3RWYWxpZGF0b3J9XG4gKlxuICogQGZ1bmN0aW9uIGxpc3RcbiAqXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRlY29yYXRvci12YWxpZGF0aW9uLkRlY29yYXRvcnMuVmFsaWRhdGlvblxuICogQGNhdGVnb3J5IERlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxpc3QoXG4gIGNsYXp6OiBNb2RlbENvbnN0cnVjdG9yPGFueT4gfCBNb2RlbENvbnN0cnVjdG9yPGFueT5bXSxcbiAgY29sbGVjdGlvbjogXCJBcnJheVwiIHwgXCJTZXRcIiA9IFwiQXJyYXlcIixcbiAgbWVzc2FnZTogc3RyaW5nID0gREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5MSVNUXG4pIHtcbiAgcmV0dXJuIHByb3BNZXRhZGF0YShWYWxpZGF0aW9uLmtleShWYWxpZGF0aW9uS2V5cy5MSVNUKSwge1xuICAgIGNsYXp6OiBBcnJheS5pc0FycmF5KGNsYXp6KSA/IGNsYXp6Lm1hcCgoYykgPT4gYy5uYW1lKSA6IFtjbGF6ei5uYW1lXSxcbiAgICB0eXBlOiBjb2xsZWN0aW9uLFxuICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gIH0pO1xufVxuXG4vKipcbiAqIEBzdW1tYXJ5IFNldCBEZWNvcmF0b3JcbiAqIEBkZXNjcmlwdGlvbiBXcmFwcGVyIGZvciB7QGxpbmsgbGlzdH0gd2l0aCB0aGUgJ1NldCcgQ29sbGVjdGlvblxuICpcbiAqIEBwYXJhbSB7TW9kZWxDb25zdHJ1Y3Rvcn0gY2xhenpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZV0gZGVmYXVsdHMgdG8ge0BsaW5rIERFRkFVTFRfRVJST1JfTUVTU0FHRVMjTElTVH1cbiAqIEBwYXJhbSB7Q29uc3RydWN0b3I8VmFsaWRhdG9yPn0gW3ZhbGlkYXRvcl1cbiAqXG4gKiBAZnVuY3Rpb24gc2V0XG4gKlxuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvbi5EZWNvcmF0b3JzLlZhbGlkYXRpb25cbiAqIEBjYXRlZ29yeSBEZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXQoXG4gIGNsYXp6OiBNb2RlbENvbnN0cnVjdG9yPGFueT4sXG4gIG1lc3NhZ2U6IHN0cmluZyA9IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuTElTVFxuKSB7XG4gIHJldHVybiBsaXN0KGNsYXp6LCBcIlNldFwiLCBtZXNzYWdlKTtcbn1cbiJdfQ==
@@ -14,7 +14,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./Validators"), exports);
18
- __exportStar(require("./decorators"), exports);
19
- __exportStar(require("./types"), exports);
20
- __exportStar(require("./Validation"), exports);
17
+ __exportStar(require("./Validators/index.cjs"), exports);
18
+ __exportStar(require("./decorators.cjs"), exports);
19
+ __exportStar(require("./types.cjs"), exports);
20
+ __exportStar(require("./Validation.cjs"), exports);
21
+
22
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBNkI7QUFDN0IsK0NBQTZCO0FBQzdCLDBDQUF3QjtBQUN4QiwrQ0FBNkIiLCJmaWxlIjoidmFsaWRhdGlvbi9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL1ZhbGlkYXRvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2RlY29yYXRvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3R5cGVzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9WYWxpZGF0aW9uXCI7XG4iXX0=
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+
4
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy92YWxpZGF0aW9uL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJmaWxlIjoidmFsaWRhdGlvbi90eXBlcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlY29yYXRvck1ldGFkYXRhIH0gZnJvbSBcIkBkZWNhZi10cy9yZWZsZWN0aW9uXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciB9IGZyb20gXCIuLi9tb2RlbFwiO1xuaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSBcIi4vVmFsaWRhdG9yc1wiO1xuaW1wb3J0IHsgSVJlZ2lzdHJ5IH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgVHlwZSBmb3IgdmFsaWRhdGlvbiBkZWNvcmF0b3IgbWV0YWRhdGFcbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdG9yLXZhbGlkYXRpb24uUmVmbGVjdGlvblxuICogQGNhdGVnb3J5IFJlZmxlY3Rpb25cbiAqL1xuZXhwb3J0IHR5cGUgVmFsaWRhdGlvbk1ldGFkYXRhID0ge1xuICBbaW5kZXhlcjogc3RyaW5nXTogYW55O1xuICBhcmdzPzogYW55W107XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgdHlwZXM/OiBzdHJpbmdbXTtcbn07XG5cbi8qKlxuICogQHN1bW1hcnkgVHlwZSBmb3IgYSB2YWxpZGF0b3IgcHJvcGVydHkgZGVjb3JhdG9yIGRlZmluaXRpb25cbiAqIEBtZW1iZXJPZiBtb2R1bGU6ZGVjb3JhdG9yLXZhbGlkYXRpb24uVmFsaWRhdGlvblxuICogQGNhdGVnb3J5IFZhbGlkYXRpb25cbiAqL1xuZXhwb3J0IHR5cGUgVmFsaWRhdGlvblByb3BlcnR5RGVjb3JhdG9yRGVmaW5pdGlvbiA9IHtcbiAgcHJvcDogc3RyaW5nIHwgc3ltYm9sO1xuICBkZWNvcmF0b3JzOiBWYWxpZGF0aW9uRGVjb3JhdG9yRGVmaW5pdGlvbltdO1xufTtcblxuLyoqXG4gKiBAc3VtbWFyeSBUeXBlIGZvciBhIHZhbGlkYXRvciBkZWNvcmF0b3IgZGVmaW5pdGlvblxuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvbi5WYWxpZGF0aW9uXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdGlvblxuICovXG5leHBvcnQgdHlwZSBWYWxpZGF0aW9uRGVjb3JhdG9yRGVmaW5pdGlvbiA9IERlY29yYXRvck1ldGFkYXRhICYge1xuICBwcm9wczogVmFsaWRhdGlvbkVsZW1lbnREZWZpbml0aW9uO1xufTtcblxuLyoqXG4gKiBAc3VtbWFyeSBUeXBlIGZvciBhIHZhbGlkYXRvciBlbGVtZW50IG1ldGFkYXRhXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmRlY29yYXRvci12YWxpZGF0aW9uLlZhbGlkYXRpb25cbiAqIEBjYXRlZ29yeSBWYWxpZGF0aW9uXG4gKi9cbmV4cG9ydCB0eXBlIFZhbGlkYXRpb25FbGVtZW50RGVmaW5pdGlvbiA9IHtcbiAgW2luZGV4ZXI6IHN0cmluZ106IGFueTtcblxuICB2YWx1ZT86IHN0cmluZyB8IG51bWJlcjtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICB0eXBlcz86IHN0cmluZ1tdO1xufTtcblxuLyoqXG4gKiBAc3VtbWFyeSBUeXBlIGZvciBhIG1vZGVsIGVycm9yc1xuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvbi5WYWxpZGF0aW9uXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdGlvblxuICovXG5leHBvcnQgdHlwZSBNb2RlbEVycm9ycyA9IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD4+O1xuXG4vKipcbiAqIEBzdW1tYXJ5IFV0aWwgdHlwZSBmb3Ige0BsaW5rIFZhbGlkYXRvcn0gY29uZmlndXJhdGlvblxuICogQG1lbWJlck9mIG1vZHVsZTpkZWNvcmF0b3ItdmFsaWRhdGlvbi5WYWxpZGF0aW9uXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdGlvblxuICovXG5leHBvcnQgdHlwZSBWYWxpZGF0b3JEZWZpbml0aW9uID0ge1xuICB2YWxpZGF0b3I6IENvbnN0cnVjdG9yPFZhbGlkYXRvcj47XG4gIHZhbGlkYXRpb25LZXk6IHN0cmluZztcbiAgc2F2ZTogYm9vbGVhbjtcbn07XG5cbi8qKlxuICogQHN1bW1hcnkgQmFzZSBBUEkgZm9yIGEge0BsaW5rIFZhbGlkYXRvcn0gcmVnaXN0cnlcbiAqXG4gKiBAaW50ZXJmYWNlIFZhbGlkYXRvclJlZ2lzdHJ5XG4gKiBAZXh0ZW5kcyBJUmVnaXN0cnlcbiAqXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIElWYWxpZGF0b3JSZWdpc3RyeTxUIGV4dGVuZHMgVmFsaWRhdG9yPiBleHRlbmRzIElSZWdpc3RyeTxUPiB7XG4gIC8qKlxuICAgKiBAc3VtbWFyeSByZXRyaWV2ZXMgdGhlIGN1c3RvbSBrZXlzXG4gICAqIEBtZXRob2RcbiAgICovXG4gIGdldEN1c3RvbUtleXMoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAvKipcbiAgICogQHN1bW1hcnkgUmV0cmlldmVzIHRoZSBSZWdpc3RlcmVkIHZhbGlkYXRvciBrZXlzXG4gICAqIEByZXR1cm4ge3N0cmluZ1tdfSB0aGUgcmVnaXN0ZXJlZCB2YWxpZGF0b3JzIGtleXNcbiAgICogQG1ldGhvZFxuICAgKi9cbiAgZ2V0S2V5cygpOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQHN1bW1hcnkgUmVnaXN0ZXJzIHRoZSBwcm92aWRlZCB2YWxpZGF0b3JzIG9udG8gdGhlIHJlZ2lzdHJ5XG4gICAqXG4gICAqIEB0eXBlZGVmIFQgZXh0ZW5kcyBWYWxpZGF0b3JcbiAgICogQHBhcmFtIHtUW10gfCBWYWxpZGF0b3JEZWZpbml0aW9uW119IHZhbGlkYXRvclxuICAgKiBAbWV0aG9kXG4gICAqL1xuICByZWdpc3RlcjxUIGV4dGVuZHMgVmFsaWRhdG9yPihcbiAgICAuLi52YWxpZGF0b3I6IChUIHwgVmFsaWRhdG9yRGVmaW5pdGlvbilbXVxuICApOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBSZXRyaWV2ZXMgdGhlIFZhbGlkYXRvciBjb25zdHJ1Y3RvciBpZiByZWdpc3RlcmVkXG4gICAqXG4gICAqIEB0eXBlZGVmIFQgZXh0ZW5kcyBWYWxpZGF0b3JcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBvbmUgb2YgdGhlIHtAbGluayBWYWxpZGF0aW9uS2V5c31cbiAgICogQHJldHVybiB7VmFsaWRhdG9yIHwgdW5kZWZpbmVkfSB0aGUgcmVnaXN0ZXJlZCBWYWxpZGF0b3Igb3IgdW5kZWZpbmVkIGlmIHRoZXJlIGlzIG5vbm8gbWF0Y2hpbmcgdGhlIHByb3ZpZGVkIGtleVxuICAgKiBAbWV0aG9kXG4gICAqL1xuICBnZXQ8VCBleHRlbmRzIFZhbGlkYXRvcj4oa2V5OiBzdHJpbmcpOiBUIHwgdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgdHlwZSBWYWxpZGF0b3JPcHRpb25zID0ge1xuICBtZXNzYWdlPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBVUkxWYWxpZGF0b3JPcHRpb25zIGV4dGVuZHMgVmFsaWRhdG9yT3B0aW9ucyB7XG4gIHR5cGVzOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHsgbmFtZTogc3RyaW5nIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZVZhbGlkYXRvck9wdGlvbnMgZXh0ZW5kcyBWYWxpZGF0b3JPcHRpb25zIHtcbiAgdHlwZXM6IHN0cmluZyB8IHN0cmluZ1tdIHwgeyBuYW1lOiBzdHJpbmcgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGVwVmFsaWRhdG9yT3B0aW9ucyBleHRlbmRzIFZhbGlkYXRvck9wdGlvbnMge1xuICBzdGVwOiBudW1iZXIgfCBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF0dGVyblZhbGlkYXRvck9wdGlvbnMgZXh0ZW5kcyBWYWxpZGF0b3JPcHRpb25zIHtcbiAgcGF0dGVybj86IFJlZ0V4cCB8IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNaW5WYWxpZGF0b3JPcHRpb25zIGV4dGVuZHMgVmFsaWRhdG9yT3B0aW9ucyB7XG4gIG1pbjogbnVtYmVyIHwgRGF0ZSB8IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNaW5MZW5ndGhWYWxpZGF0b3JPcHRpb25zIGV4dGVuZHMgVmFsaWRhdG9yT3B0aW9ucyB7XG4gIG1pbkxlbmd0aDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1heFZhbGlkYXRvck9wdGlvbnMgZXh0ZW5kcyBWYWxpZGF0b3JPcHRpb25zIHtcbiAgbWF4OiBudW1iZXIgfCBEYXRlIHwgc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1heExlbmd0aFZhbGlkYXRvck9wdGlvbnMgZXh0ZW5kcyBWYWxpZGF0b3JPcHRpb25zIHtcbiAgbWF4TGVuZ3RoOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFZhbGlkYXRvck9wdGlvbnMgZXh0ZW5kcyBWYWxpZGF0b3JPcHRpb25zIHtcbiAgY2xheno6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGVWYWxpZGF0b3JPcHRpb25zIGV4dGVuZHMgVmFsaWRhdG9yT3B0aW9ucyB7XG4gIGZvcm1hdD86IHN0cmluZztcbn1cbiJdfQ==
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@decaf-ts/decorator-validation",
3
- "version": "1.5.8",
3
+ "version": "1.5.10",
4
4
  "description": "simple decorator based validation engine",
5
5
  "type": "module",
6
6
  "exports": {
7
7
  "require": "./lib/index.cjs",
8
8
  "import": "./lib/esm/index.js"
9
9
  },
10
- "types": "lib/index.d.ts",
10
+ "types": "dist/types/index.d.ts",
11
11
  "scripts": {
12
12
  "do-install": "TOKEN=$(cat .token) npm install",
13
13
  "update-scripts": "node ./bin/update-scripts.cjs",
@@ -1,2 +0,0 @@
1
- import { Model } from "./Model";
2
- export declare function isPropertyModel<M extends Model>(target: M, attribute: string): boolean | string | undefined;
@@ -1,8 +0,0 @@
1
- import { ModelKeys } from "../utils/constants";
2
- import { isModel, Model } from "./Model";
3
- export function isPropertyModel(target, attribute) {
4
- if (isModel(target[attribute]))
5
- return true;
6
- const metadata = Reflect.getMetadata(ModelKeys.TYPE, target, attribute);
7
- return Model.get(metadata.name) ? metadata.name : undefined;
8
- }
@@ -1,52 +0,0 @@
1
- /**
2
- * @summary Mimics Java's String's Hash implementation
3
- *
4
- * @param {string | number | symbol | Date} obj
5
- * @return {number} hash value of obj
6
- *
7
- * @function hashCode
8
- * @memberOf module:decorator-validation.Utils.Hashing
9
- * @category Hashing
10
- */
11
- export declare function hashCode(obj: string | number | symbol | Date): string;
12
- /**
13
- * @summary Defines teh type for a Hashing function
14
- * @memberOf module:decorator-validation.Utils.Hashing
15
- * @category Hashing
16
- */
17
- export type HashingFunction = (value: any, ...args: any[]) => string;
18
- /**
19
- * @summary Hashes an object serializing it and then hashing the string
20
- * @description The Serialization algorithm used by default (JSON.stringify)
21
- * is not deterministic and should not be used for hashing
22
- *
23
- * @param {Record<string, any>} obj
24
- * @return {string} the resulting hash
25
- *
26
- * @function hashSerialization
27
- * @memberOf module:decorator-validation.Utils.Hashing
28
- *
29
- * @category Hashing
30
- */
31
- export declare function hashSerialization(obj: Record<string, any> | any[]): string;
32
- /**
33
- * @summary Hashes an object by combining the hash of all its properties
34
- *
35
- * @param {Record<string, any>} obj
36
- * @return {string} the resulting hash
37
- *
38
- * @function hashObj
39
- * @memberOf module:decorator-validation.Utils.Hashing
40
- * @category Hashing
41
- */
42
- export declare function hashObj(obj: Record<string, any> | any[]): string;
43
- export declare const DefaultHashingMethod = "default";
44
- export declare class Hashing {
45
- private static current;
46
- private static cache;
47
- private constructor();
48
- private static get;
49
- static register(key: string, func: HashingFunction, setDefault?: boolean): void;
50
- static hash(obj: any, method?: string, ...args: any[]): any;
51
- static setDefault(method: string): void;
52
- }
@@ -1,7 +0,0 @@
1
- export * from "./constants";
2
- export * from "./dates";
3
- export * from "./decorators";
4
- export * from "./hashing";
5
- export * from "./registry";
6
- export * from "./serialization";
7
- export * from "./strings";
@@ -1,79 +0,0 @@
1
- import { Model } from "../model/Model";
2
- import { Constructor } from "../model/types";
3
- /**
4
- * @summary Helper in serialization
5
- *
6
- * @interface Serializer
7
- * @category Serialization
8
- */
9
- export interface Serializer<T extends Model> {
10
- /**
11
- * @summary Serializes a model
12
- * @param {T} model
13
- *
14
- * @param args
15
- * @method
16
- *
17
- * @throws {Error}
18
- */
19
- serialize(model: T, ...args: any[]): string;
20
- /**
21
- * @summary Rebuilds a model from serialization
22
- * @param {string} str
23
- *
24
- * @param args
25
- * @method
26
- *
27
- * @throws {Error}
28
- */
29
- deserialize(str: string, ...args: any[]): T;
30
- }
31
- /**
32
- * @summary Concrete implementation of a {@link Serializer} in JSON format
33
- * @description JS's native JSON.stringify (used here) is not deterministic
34
- * and therefore should not be used for hashing purposes
35
- *
36
- * To keep dependencies low, we will not implement this, but we recommend
37
- * implementing a similar {@link JSONSerializer} using 'deterministic-json' libraries
38
- *
39
- * @class JSONSerializer
40
- * @implements Serializer
41
- *
42
- * @category Serialization
43
- */
44
- export declare class JSONSerializer<T extends Model> implements Serializer<T> {
45
- /**
46
- * @summary prepares the model for serialization
47
- * @description returns a shallow copy of the object, containing an enumerable {@link ModelKeys#ANCHOR} property
48
- * so the object can be recognized upon deserialization
49
- *
50
- * @param {T} model
51
- * @protected
52
- */
53
- protected preSerialize(model: T): Record<string, any>;
54
- /**
55
- * @summary Rebuilds a model from a serialization
56
- * @param {string} str
57
- *
58
- * @throws {Error} If it fails to parse the string, or to build the model
59
- */
60
- deserialize(str: string): T;
61
- /**
62
- * @summary Serializes a model
63
- * @param {T} model
64
- *
65
- * @throws {Error} if fails to serialize
66
- */
67
- serialize(model: T): string;
68
- }
69
- export declare const DefaultSerializationMethod = "json";
70
- export declare class Serialization {
71
- private static current;
72
- private static cache;
73
- private constructor();
74
- private static get;
75
- static register(key: string, func: Constructor<Serializer<any>>, setDefault?: boolean): void;
76
- static serialize(obj: any, method?: string, ...args: any[]): any;
77
- static deserialize(obj: string, method?: string, ...args: any[]): any;
78
- static setDefault(method: string): void;
79
- }