@decaf-ts/decorator-validation 1.6.4 → 1.7.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.
- package/dist/decorator-validation.cjs +1217 -404
- package/dist/decorator-validation.esm.cjs +1173 -359
- package/lib/constants/index.cjs +1 -1
- package/lib/esm/index.d.ts +5 -37
- package/lib/esm/index.js +6 -38
- package/lib/esm/model/Model.d.ts +107 -35
- package/lib/esm/model/Model.js +110 -45
- package/lib/esm/model/constants.d.ts +3 -3
- package/lib/esm/model/constants.js +4 -4
- package/lib/esm/model/construction.d.ts +3 -3
- package/lib/esm/model/construction.js +4 -4
- package/lib/esm/model/decorators.d.ts +3 -3
- package/lib/esm/model/decorators.js +2 -3
- package/lib/esm/model/index.d.ts +1 -0
- package/lib/esm/model/index.js +2 -1
- package/lib/esm/model/types.d.ts +30 -11
- package/lib/esm/model/types.js +1 -1
- package/lib/esm/model/utils.d.ts +3 -0
- package/lib/esm/model/utils.js +11 -0
- package/lib/esm/model/validation.d.ts +5 -5
- package/lib/esm/model/validation.js +8 -9
- package/lib/esm/utils/Decoration.d.ts +123 -0
- package/lib/esm/utils/Decoration.js +192 -0
- package/lib/esm/utils/constants.d.ts +27 -9
- package/lib/esm/utils/constants.js +28 -10
- package/lib/esm/utils/dates.d.ts +26 -16
- package/lib/esm/utils/dates.js +27 -17
- package/lib/esm/utils/decorators.d.ts +41 -0
- package/lib/esm/utils/decorators.js +42 -1
- package/lib/esm/utils/hashing.d.ts +50 -6
- package/lib/esm/utils/hashing.js +49 -5
- package/lib/esm/utils/index.d.ts +1 -0
- package/lib/esm/utils/index.js +2 -1
- package/lib/esm/utils/registry.d.ts +3 -3
- package/lib/esm/utils/registry.js +1 -1
- package/lib/esm/utils/serialization.d.ts +1 -1
- package/lib/esm/utils/serialization.js +4 -3
- package/lib/esm/utils/strings.d.ts +4 -4
- package/lib/esm/utils/strings.js +5 -5
- package/lib/esm/utils/types.d.ts +123 -16
- package/lib/esm/utils/types.js +1 -1
- package/lib/esm/validation/Validators/DateValidator.d.ts +40 -8
- package/lib/esm/validation/Validators/DateValidator.js +41 -9
- package/lib/esm/validation/Validators/DiffValidator.d.ts +3 -3
- package/lib/esm/validation/Validators/DiffValidator.js +3 -3
- package/lib/esm/validation/Validators/EmailValidator.d.ts +39 -7
- package/lib/esm/validation/Validators/EmailValidator.js +40 -8
- package/lib/esm/validation/Validators/EqualsValidator.d.ts +3 -3
- package/lib/esm/validation/Validators/EqualsValidator.js +3 -3
- package/lib/esm/validation/Validators/GreaterThanOrEqualValidator.d.ts +3 -3
- package/lib/esm/validation/Validators/GreaterThanOrEqualValidator.js +3 -3
- package/lib/esm/validation/Validators/GreaterThanValidator.d.ts +3 -3
- package/lib/esm/validation/Validators/GreaterThanValidator.js +3 -3
- package/lib/esm/validation/Validators/LessThanOrEqualValidator.d.ts +3 -3
- package/lib/esm/validation/Validators/LessThanOrEqualValidator.js +3 -3
- package/lib/esm/validation/Validators/LessThanValidator.d.ts +3 -3
- package/lib/esm/validation/Validators/LessThanValidator.js +3 -3
- package/lib/esm/validation/Validators/ListValidator.d.ts +44 -6
- package/lib/esm/validation/Validators/ListValidator.js +45 -7
- package/lib/esm/validation/Validators/MaxValidator.d.ts +52 -6
- package/lib/esm/validation/Validators/MaxValidator.js +53 -7
- package/lib/esm/validation/Validators/MinValidator.d.ts +52 -6
- package/lib/esm/validation/Validators/MinValidator.js +53 -7
- package/lib/esm/validation/Validators/PatternValidator.d.ts +75 -9
- package/lib/esm/validation/Validators/PatternValidator.js +76 -10
- package/lib/esm/validation/Validators/RequiredValidator.d.ts +52 -6
- package/lib/esm/validation/Validators/RequiredValidator.js +53 -7
- package/lib/esm/validation/Validators/TypeValidator.d.ts +60 -6
- package/lib/esm/validation/Validators/TypeValidator.js +69 -7
- package/lib/esm/validation/Validators/URLValidator.d.ts +41 -7
- package/lib/esm/validation/Validators/URLValidator.js +42 -8
- package/lib/esm/validation/Validators/Validator.d.ts +76 -16
- package/lib/esm/validation/Validators/Validator.js +68 -11
- package/lib/esm/validation/Validators/ValidatorRegistry.d.ts +1 -7
- package/lib/esm/validation/Validators/ValidatorRegistry.js +4 -11
- package/lib/esm/validation/decorators.d.ts +50 -40
- package/lib/esm/validation/decorators.js +108 -59
- package/lib/esm/validation/types.d.ts +163 -30
- package/lib/esm/validation/types.js +1 -1
- package/lib/index.cjs +7 -39
- package/lib/index.d.ts +5 -37
- package/lib/model/Model.cjs +114 -51
- package/lib/model/Model.d.ts +107 -35
- package/lib/model/constants.cjs +4 -4
- package/lib/model/constants.d.ts +3 -3
- package/lib/model/construction.cjs +4 -4
- package/lib/model/construction.d.ts +3 -3
- package/lib/model/decorators.cjs +3 -4
- package/lib/model/decorators.d.ts +3 -3
- package/lib/model/index.cjs +2 -1
- package/lib/model/index.d.ts +1 -0
- package/lib/model/types.cjs +1 -1
- package/lib/model/types.d.ts +30 -11
- package/lib/model/utils.cjs +15 -0
- package/lib/model/utils.d.ts +3 -0
- package/lib/model/validation.cjs +11 -12
- package/lib/model/validation.d.ts +5 -5
- package/lib/utils/Decoration.cjs +196 -0
- package/lib/utils/Decoration.d.ts +123 -0
- package/lib/utils/constants.cjs +29 -11
- package/lib/utils/constants.d.ts +27 -9
- package/lib/utils/dates.cjs +28 -18
- package/lib/utils/dates.d.ts +26 -16
- package/lib/utils/decorators.cjs +42 -1
- package/lib/utils/decorators.d.ts +41 -0
- package/lib/utils/hashing.cjs +49 -5
- package/lib/utils/hashing.d.ts +50 -6
- package/lib/utils/index.cjs +2 -1
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/registry.cjs +1 -1
- package/lib/utils/registry.d.ts +3 -3
- package/lib/utils/serialization.cjs +5 -4
- package/lib/utils/serialization.d.ts +1 -1
- package/lib/utils/strings.cjs +5 -5
- package/lib/utils/strings.d.ts +4 -4
- package/lib/utils/types.cjs +1 -1
- package/lib/utils/types.d.ts +123 -16
- package/lib/validation/Validation.cjs +1 -1
- package/lib/validation/Validators/DateValidator.cjs +41 -9
- package/lib/validation/Validators/DateValidator.d.ts +40 -8
- package/lib/validation/Validators/DiffValidator.cjs +3 -3
- package/lib/validation/Validators/DiffValidator.d.ts +3 -3
- package/lib/validation/Validators/EmailValidator.cjs +40 -8
- package/lib/validation/Validators/EmailValidator.d.ts +39 -7
- package/lib/validation/Validators/EqualsValidator.cjs +3 -3
- package/lib/validation/Validators/EqualsValidator.d.ts +3 -3
- package/lib/validation/Validators/GreaterThanOrEqualValidator.cjs +3 -3
- package/lib/validation/Validators/GreaterThanOrEqualValidator.d.ts +3 -3
- package/lib/validation/Validators/GreaterThanValidator.cjs +3 -3
- package/lib/validation/Validators/GreaterThanValidator.d.ts +3 -3
- package/lib/validation/Validators/LessThanOrEqualValidator.cjs +3 -3
- package/lib/validation/Validators/LessThanOrEqualValidator.d.ts +3 -3
- package/lib/validation/Validators/LessThanValidator.cjs +3 -3
- package/lib/validation/Validators/LessThanValidator.d.ts +3 -3
- package/lib/validation/Validators/ListValidator.cjs +45 -7
- package/lib/validation/Validators/ListValidator.d.ts +44 -6
- package/lib/validation/Validators/MaxLengthValidator.cjs +1 -1
- package/lib/validation/Validators/MaxValidator.cjs +53 -7
- package/lib/validation/Validators/MaxValidator.d.ts +52 -6
- package/lib/validation/Validators/MinLengthValidator.cjs +1 -1
- package/lib/validation/Validators/MinValidator.cjs +53 -7
- package/lib/validation/Validators/MinValidator.d.ts +52 -6
- package/lib/validation/Validators/PasswordValidator.cjs +1 -1
- package/lib/validation/Validators/PatternValidator.cjs +76 -10
- package/lib/validation/Validators/PatternValidator.d.ts +75 -9
- package/lib/validation/Validators/RequiredValidator.cjs +53 -7
- package/lib/validation/Validators/RequiredValidator.d.ts +52 -6
- package/lib/validation/Validators/StepValidator.cjs +1 -1
- package/lib/validation/Validators/TypeValidator.cjs +71 -9
- package/lib/validation/Validators/TypeValidator.d.ts +60 -6
- package/lib/validation/Validators/URLValidator.cjs +42 -8
- package/lib/validation/Validators/URLValidator.d.ts +41 -7
- package/lib/validation/Validators/Validator.cjs +69 -12
- package/lib/validation/Validators/Validator.d.ts +76 -16
- package/lib/validation/Validators/ValidatorRegistry.cjs +4 -12
- package/lib/validation/Validators/ValidatorRegistry.d.ts +1 -7
- package/lib/validation/Validators/constants.cjs +2 -2
- package/lib/validation/Validators/decorators.cjs +2 -2
- package/lib/validation/Validators/index.cjs +1 -1
- package/lib/validation/Validators/utils.cjs +3 -3
- package/lib/validation/decorators.cjs +111 -62
- package/lib/validation/decorators.d.ts +50 -40
- package/lib/validation/index.cjs +1 -1
- package/lib/validation/types.cjs +1 -1
- package/lib/validation/types.d.ts +163 -30
- package/package.json +2 -1
|
@@ -14,13 +14,42 @@ const constants_1 = require("./constants.cjs");
|
|
|
14
14
|
const PatternValidator_1 = require("./PatternValidator.cjs");
|
|
15
15
|
const decorators_1 = require("./decorators.cjs");
|
|
16
16
|
/**
|
|
17
|
-
* @
|
|
17
|
+
* @description Validator for checking if a string is a valid email address
|
|
18
|
+
* @summary The EmailValidator checks if a string matches a standard email address pattern.
|
|
19
|
+
* It extends the PatternValidator and uses a predefined email regex pattern to validate email addresses.
|
|
20
|
+
* This validator is typically used with the @email decorator.
|
|
18
21
|
*
|
|
19
|
-
* @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#EMAIL}
|
|
22
|
+
* @param {string} [message] - Custom error message to display when validation fails, defaults to {@link DEFAULT_ERROR_MESSAGES#EMAIL}
|
|
20
23
|
*
|
|
21
24
|
* @class EmailValidator
|
|
22
25
|
* @extends PatternValidator
|
|
23
26
|
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* // Create an email validator with default error message
|
|
30
|
+
* const emailValidator = new EmailValidator();
|
|
31
|
+
*
|
|
32
|
+
* // Create an email validator with custom error message
|
|
33
|
+
* const customEmailValidator = new EmailValidator("Please enter a valid email address");
|
|
34
|
+
*
|
|
35
|
+
* // Validate an email
|
|
36
|
+
* const result = emailValidator.hasErrors("user@example.com"); // undefined (valid)
|
|
37
|
+
* const invalidResult = emailValidator.hasErrors("invalid-email"); // Returns error message (invalid)
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* @mermaid
|
|
41
|
+
* sequenceDiagram
|
|
42
|
+
* participant C as Client
|
|
43
|
+
* participant E as EmailValidator
|
|
44
|
+
* participant P as PatternValidator
|
|
45
|
+
*
|
|
46
|
+
* C->>E: new EmailValidator(message)
|
|
47
|
+
* E->>P: super(message)
|
|
48
|
+
* C->>E: hasErrors(value, options)
|
|
49
|
+
* E->>P: super.hasErrors(value, options with EMAIL pattern)
|
|
50
|
+
* P-->>E: validation result
|
|
51
|
+
* E-->>C: validation result
|
|
52
|
+
*
|
|
24
53
|
* @category Validators
|
|
25
54
|
*/
|
|
26
55
|
let EmailValidator = class EmailValidator extends PatternValidator_1.PatternValidator {
|
|
@@ -28,16 +57,19 @@ let EmailValidator = class EmailValidator extends PatternValidator_1.PatternVali
|
|
|
28
57
|
super(message);
|
|
29
58
|
}
|
|
30
59
|
/**
|
|
31
|
-
* @
|
|
60
|
+
* @description Checks if a string is a valid email address
|
|
61
|
+
* @summary Validates that the provided string matches the email pattern.
|
|
62
|
+
* This method extends the PatternValidator's hasErrors method by ensuring
|
|
63
|
+
* the email pattern is used, even if not explicitly provided in the options.
|
|
32
64
|
*
|
|
33
|
-
* @param {string} value
|
|
34
|
-
* @param {PatternValidatorOptions} [options]
|
|
65
|
+
* @param {string} value - The string to validate as an email address
|
|
66
|
+
* @param {PatternValidatorOptions} [options={}] - Optional configuration options
|
|
35
67
|
*
|
|
36
|
-
* @return {string | undefined}
|
|
68
|
+
* @return {string | undefined} Error message if validation fails, undefined if validation passes
|
|
37
69
|
*
|
|
38
70
|
* @override
|
|
39
71
|
*
|
|
40
|
-
* @see
|
|
72
|
+
* @see PatternValidator#hasErrors
|
|
41
73
|
*/
|
|
42
74
|
hasErrors(value, options = {}) {
|
|
43
75
|
return super.hasErrors(value, {
|
|
@@ -51,4 +83,4 @@ exports.EmailValidator = EmailValidator = __decorate([
|
|
|
51
83
|
(0, decorators_1.validator)(constants_1.ValidationKeys.EMAIL),
|
|
52
84
|
__metadata("design:paramtypes", [String])
|
|
53
85
|
], EmailValidator);
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW1haWxWYWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdmFsaWRhdGlvbi9WYWxpZGF0b3JzL0VtYWlsVmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLCtDQUlxQjtBQUNyQiw2REFBc0Q7QUFDdEQsaURBQXlDO0FBR3pDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNDRztBQUVJLElBQU0sY0FBYyxHQUFwQixNQUFNLGNBQWUsU0FBUSxtQ0FBZ0I7SUFDbEQsWUFBWSxVQUFrQixrQ0FBc0IsQ0FBQyxLQUFLO1FBQ3hELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7O09BY0c7SUFDSSxTQUFTLENBQ2QsS0FBYSxFQUNiLFVBQW1DLEVBQUU7UUFFckMsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRTtZQUM1QixHQUFHLE9BQU87WUFDVixPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sSUFBSSw0QkFBZ0IsQ0FBQyxLQUFLO1NBQ3BELENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRixDQUFBO0FBN0JZLHdDQUFjO3lCQUFkLGNBQWM7SUFEMUIsSUFBQSxzQkFBUyxFQUFDLDBCQUFjLENBQUMsS0FBSyxDQUFDOztHQUNuQixjQUFjLENBNkIxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERFRkFVTFRfRVJST1JfTUVTU0FHRVMsXG4gIERFRkFVTFRfUEFUVEVSTlMsXG4gIFZhbGlkYXRpb25LZXlzLFxufSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IFBhdHRlcm5WYWxpZGF0b3IgfSBmcm9tIFwiLi9QYXR0ZXJuVmFsaWRhdG9yXCI7XG5pbXBvcnQgeyB2YWxpZGF0b3IgfSBmcm9tIFwiLi9kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBQYXR0ZXJuVmFsaWRhdG9yT3B0aW9ucyB9IGZyb20gXCIuLi90eXBlc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBWYWxpZGF0b3IgZm9yIGNoZWNraW5nIGlmIGEgc3RyaW5nIGlzIGEgdmFsaWQgZW1haWwgYWRkcmVzc1xuICogQHN1bW1hcnkgVGhlIEVtYWlsVmFsaWRhdG9yIGNoZWNrcyBpZiBhIHN0cmluZyBtYXRjaGVzIGEgc3RhbmRhcmQgZW1haWwgYWRkcmVzcyBwYXR0ZXJuLlxuICogSXQgZXh0ZW5kcyB0aGUgUGF0dGVyblZhbGlkYXRvciBhbmQgdXNlcyBhIHByZWRlZmluZWQgZW1haWwgcmVnZXggcGF0dGVybiB0byB2YWxpZGF0ZSBlbWFpbCBhZGRyZXNzZXMuXG4gKiBUaGlzIHZhbGlkYXRvciBpcyB0eXBpY2FsbHkgdXNlZCB3aXRoIHRoZSBAZW1haWwgZGVjb3JhdG9yLlxuICogXG4gKiBAcGFyYW0ge3N0cmluZ30gW21lc3NhZ2VdIC0gQ3VzdG9tIGVycm9yIG1lc3NhZ2UgdG8gZGlzcGxheSB3aGVuIHZhbGlkYXRpb24gZmFpbHMsIGRlZmF1bHRzIHRvIHtAbGluayBERUZBVUxUX0VSUk9SX01FU1NBR0VTI0VNQUlMfVxuICogXG4gKiBAY2xhc3MgRW1haWxWYWxpZGF0b3JcbiAqIEBleHRlbmRzIFBhdHRlcm5WYWxpZGF0b3JcbiAqIFxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIENyZWF0ZSBhbiBlbWFpbCB2YWxpZGF0b3Igd2l0aCBkZWZhdWx0IGVycm9yIG1lc3NhZ2VcbiAqIGNvbnN0IGVtYWlsVmFsaWRhdG9yID0gbmV3IEVtYWlsVmFsaWRhdG9yKCk7XG4gKiBcbiAqIC8vIENyZWF0ZSBhbiBlbWFpbCB2YWxpZGF0b3Igd2l0aCBjdXN0b20gZXJyb3IgbWVzc2FnZVxuICogY29uc3QgY3VzdG9tRW1haWxWYWxpZGF0b3IgPSBuZXcgRW1haWxWYWxpZGF0b3IoXCJQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbWFpbCBhZGRyZXNzXCIpO1xuICogXG4gKiAvLyBWYWxpZGF0ZSBhbiBlbWFpbFxuICogY29uc3QgcmVzdWx0ID0gZW1haWxWYWxpZGF0b3IuaGFzRXJyb3JzKFwidXNlckBleGFtcGxlLmNvbVwiKTsgLy8gdW5kZWZpbmVkICh2YWxpZClcbiAqIGNvbnN0IGludmFsaWRSZXN1bHQgPSBlbWFpbFZhbGlkYXRvci5oYXNFcnJvcnMoXCJpbnZhbGlkLWVtYWlsXCIpOyAvLyBSZXR1cm5zIGVycm9yIG1lc3NhZ2UgKGludmFsaWQpXG4gKiBgYGBcbiAqIFxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDIGFzIENsaWVudFxuICogICBwYXJ0aWNpcGFudCBFIGFzIEVtYWlsVmFsaWRhdG9yXG4gKiAgIHBhcnRpY2lwYW50IFAgYXMgUGF0dGVyblZhbGlkYXRvclxuICogICBcbiAqICAgQy0+PkU6IG5ldyBFbWFpbFZhbGlkYXRvcihtZXNzYWdlKVxuICogICBFLT4+UDogc3VwZXIobWVzc2FnZSlcbiAqICAgQy0+PkU6IGhhc0Vycm9ycyh2YWx1ZSwgb3B0aW9ucylcbiAqICAgRS0+PlA6IHN1cGVyLmhhc0Vycm9ycyh2YWx1ZSwgb3B0aW9ucyB3aXRoIEVNQUlMIHBhdHRlcm4pXG4gKiAgIFAtLT4+RTogdmFsaWRhdGlvbiByZXN1bHRcbiAqICAgRS0tPj5DOiB2YWxpZGF0aW9uIHJlc3VsdFxuICogXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdG9yc1xuICovXG5AdmFsaWRhdG9yKFZhbGlkYXRpb25LZXlzLkVNQUlMKVxuZXhwb3J0IGNsYXNzIEVtYWlsVmFsaWRhdG9yIGV4dGVuZHMgUGF0dGVyblZhbGlkYXRvciB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZyA9IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuRU1BSUwpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ2hlY2tzIGlmIGEgc3RyaW5nIGlzIGEgdmFsaWQgZW1haWwgYWRkcmVzc1xuICAgKiBAc3VtbWFyeSBWYWxpZGF0ZXMgdGhhdCB0aGUgcHJvdmlkZWQgc3RyaW5nIG1hdGNoZXMgdGhlIGVtYWlsIHBhdHRlcm4uXG4gICAqIFRoaXMgbWV0aG9kIGV4dGVuZHMgdGhlIFBhdHRlcm5WYWxpZGF0b3IncyBoYXNFcnJvcnMgbWV0aG9kIGJ5IGVuc3VyaW5nXG4gICAqIHRoZSBlbWFpbCBwYXR0ZXJuIGlzIHVzZWQsIGV2ZW4gaWYgbm90IGV4cGxpY2l0bHkgcHJvdmlkZWQgaW4gdGhlIG9wdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZSAtIFRoZSBzdHJpbmcgdG8gdmFsaWRhdGUgYXMgYW4gZW1haWwgYWRkcmVzc1xuICAgKiBAcGFyYW0ge1BhdHRlcm5WYWxpZGF0b3JPcHRpb25zfSBbb3B0aW9ucz17fV0gLSBPcHRpb25hbCBjb25maWd1cmF0aW9uIG9wdGlvbnNcbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nIHwgdW5kZWZpbmVkfSBFcnJvciBtZXNzYWdlIGlmIHZhbGlkYXRpb24gZmFpbHMsIHVuZGVmaW5lZCBpZiB2YWxpZGF0aW9uIHBhc3Nlc1xuICAgKlxuICAgKiBAb3ZlcnJpZGVcbiAgICpcbiAgICogQHNlZSBQYXR0ZXJuVmFsaWRhdG9yI2hhc0Vycm9yc1xuICAgKi9cbiAgcHVibGljIGhhc0Vycm9ycyhcbiAgICB2YWx1ZTogc3RyaW5nLFxuICAgIG9wdGlvbnM6IFBhdHRlcm5WYWxpZGF0b3JPcHRpb25zID0ge31cbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gc3VwZXIuaGFzRXJyb3JzKHZhbHVlLCB7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgcGF0dGVybjogb3B0aW9ucz8ucGF0dGVybiB8fCBERUZBVUxUX1BBVFRFUk5TLkVNQUlMLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -1,28 +1,60 @@
|
|
|
1
1
|
import { PatternValidator } from "./PatternValidator";
|
|
2
2
|
import { PatternValidatorOptions } from "../types";
|
|
3
3
|
/**
|
|
4
|
-
* @
|
|
4
|
+
* @description Validator for checking if a string is a valid email address
|
|
5
|
+
* @summary The EmailValidator checks if a string matches a standard email address pattern.
|
|
6
|
+
* It extends the PatternValidator and uses a predefined email regex pattern to validate email addresses.
|
|
7
|
+
* This validator is typically used with the @email decorator.
|
|
5
8
|
*
|
|
6
|
-
* @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#EMAIL}
|
|
9
|
+
* @param {string} [message] - Custom error message to display when validation fails, defaults to {@link DEFAULT_ERROR_MESSAGES#EMAIL}
|
|
7
10
|
*
|
|
8
11
|
* @class EmailValidator
|
|
9
12
|
* @extends PatternValidator
|
|
10
13
|
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* // Create an email validator with default error message
|
|
17
|
+
* const emailValidator = new EmailValidator();
|
|
18
|
+
*
|
|
19
|
+
* // Create an email validator with custom error message
|
|
20
|
+
* const customEmailValidator = new EmailValidator("Please enter a valid email address");
|
|
21
|
+
*
|
|
22
|
+
* // Validate an email
|
|
23
|
+
* const result = emailValidator.hasErrors("user@example.com"); // undefined (valid)
|
|
24
|
+
* const invalidResult = emailValidator.hasErrors("invalid-email"); // Returns error message (invalid)
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @mermaid
|
|
28
|
+
* sequenceDiagram
|
|
29
|
+
* participant C as Client
|
|
30
|
+
* participant E as EmailValidator
|
|
31
|
+
* participant P as PatternValidator
|
|
32
|
+
*
|
|
33
|
+
* C->>E: new EmailValidator(message)
|
|
34
|
+
* E->>P: super(message)
|
|
35
|
+
* C->>E: hasErrors(value, options)
|
|
36
|
+
* E->>P: super.hasErrors(value, options with EMAIL pattern)
|
|
37
|
+
* P-->>E: validation result
|
|
38
|
+
* E-->>C: validation result
|
|
39
|
+
*
|
|
11
40
|
* @category Validators
|
|
12
41
|
*/
|
|
13
42
|
export declare class EmailValidator extends PatternValidator {
|
|
14
43
|
constructor(message?: string);
|
|
15
44
|
/**
|
|
16
|
-
* @
|
|
45
|
+
* @description Checks if a string is a valid email address
|
|
46
|
+
* @summary Validates that the provided string matches the email pattern.
|
|
47
|
+
* This method extends the PatternValidator's hasErrors method by ensuring
|
|
48
|
+
* the email pattern is used, even if not explicitly provided in the options.
|
|
17
49
|
*
|
|
18
|
-
* @param {string} value
|
|
19
|
-
* @param {PatternValidatorOptions} [options]
|
|
50
|
+
* @param {string} value - The string to validate as an email address
|
|
51
|
+
* @param {PatternValidatorOptions} [options={}] - Optional configuration options
|
|
20
52
|
*
|
|
21
|
-
* @return {string | undefined}
|
|
53
|
+
* @return {string | undefined} Error message if validation fails, undefined if validation passes
|
|
22
54
|
*
|
|
23
55
|
* @override
|
|
24
56
|
*
|
|
25
|
-
* @see
|
|
57
|
+
* @see PatternValidator#hasErrors
|
|
26
58
|
*/
|
|
27
59
|
hasErrors(value: string, options?: PatternValidatorOptions): string | undefined;
|
|
28
60
|
}
|
|
@@ -43,14 +43,14 @@ let EqualsValidator = class EqualsValidator extends Validator_1.Validator {
|
|
|
43
43
|
hasErrors(value, options, instance) {
|
|
44
44
|
let comparisonPropertyValue;
|
|
45
45
|
try {
|
|
46
|
-
comparisonPropertyValue = (0, utils_1.getValueByPath)(instance, options.
|
|
46
|
+
comparisonPropertyValue = (0, utils_1.getValueByPath)(instance, options[constants_1.ValidationKeys.EQUALS]);
|
|
47
47
|
}
|
|
48
48
|
catch (e) {
|
|
49
49
|
return this.getMessage(e.message || this.message);
|
|
50
50
|
}
|
|
51
51
|
return (0, reflection_1.isEqual)(value, comparisonPropertyValue)
|
|
52
52
|
? undefined
|
|
53
|
-
: this.getMessage(options.message || this.message, options.
|
|
53
|
+
: this.getMessage(options.message || this.message, options[constants_1.ValidationKeys.EQUALS]);
|
|
54
54
|
}
|
|
55
55
|
};
|
|
56
56
|
exports.EqualsValidator = EqualsValidator;
|
|
@@ -63,4 +63,4 @@ exports.EqualsValidator = EqualsValidator = __decorate([
|
|
|
63
63
|
// validationKey: ValidationKeys.EQUALS,
|
|
64
64
|
// save: false,
|
|
65
65
|
// } as ValidatorDefinition);
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXF1YWxzVmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3ZhbGlkYXRpb24vVmFsaWRhdG9ycy9FcXVhbHNWYWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQXdDO0FBQ3hDLCtDQUFxRTtBQUNyRSxpREFBeUM7QUFFekMscURBQStDO0FBQy9DLHVDQUF5QztBQUV6Qzs7Ozs7Ozs7O0dBU0c7QUFFSSxJQUFNLGVBQWUsR0FBckIsTUFBTSxlQUFnQixTQUFRLHFCQUFpQztJQUNwRSxZQUFZLFVBQWtCLGtDQUFzQixDQUFDLE1BQU07UUFDekQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksU0FBUyxDQUNkLEtBQVUsRUFDVixPQUErQixFQUMvQixRQUFhO1FBRWIsSUFBSSx1QkFBNEIsQ0FBQztRQUNqQyxJQUFJLENBQUM7WUFDSCx1QkFBdUIsR0FBRyxJQUFBLHNCQUFjLEVBQ3RDLFFBQVEsRUFDUixPQUFPLENBQUMsMEJBQWMsQ0FBQyxNQUFNLENBQUMsQ0FDL0IsQ0FBQztRQUNKLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBRUQsT0FBTyxJQUFBLG9CQUFPLEVBQUMsS0FBSyxFQUFFLHVCQUF1QixDQUFDO1lBQzVDLENBQUMsQ0FBQyxTQUFTO1lBQ1gsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQ2IsT0FBTyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUMvQixPQUFPLENBQUMsMEJBQWMsQ0FBQyxNQUFNLENBQUMsQ0FDL0IsQ0FBQztJQUNSLENBQUM7Q0FDRixDQUFBO0FBdENZLDBDQUFlOzBCQUFmLGVBQWU7SUFEM0IsSUFBQSxzQkFBUyxFQUFDLDBCQUFjLENBQUMsTUFBTSxDQUFDOztHQUNwQixlQUFlLENBc0MzQjtBQUVELHdCQUF3QjtBQUN4QixnQ0FBZ0M7QUFDaEMsMENBQTBDO0FBQzFDLGlCQUFpQjtBQUNqQiw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0b3IgfSBmcm9tIFwiLi9WYWxpZGF0b3JcIjtcbmltcG9ydCB7IERFRkFVTFRfRVJST1JfTUVTU0FHRVMsIFZhbGlkYXRpb25LZXlzIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyB2YWxpZGF0b3IgfSBmcm9tIFwiLi9kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBFcXVhbHNWYWxpZGF0b3JPcHRpb25zIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBpc0VxdWFsIH0gZnJvbSBcIkBkZWNhZi10cy9yZWZsZWN0aW9uXCI7XG5pbXBvcnQgeyBnZXRWYWx1ZUJ5UGF0aCB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgRXF1YWxzIFZhbGlkYXRvclxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZV0gZGVmYXVsdHMgdG8ge0BsaW5rIERFRkFVTFRfRVJST1JfTUVTU0FHRVMjRVFVQUxTfVxuICpcbiAqIEBjbGFzcyBFcXVhbHNWYWxpZGF0b3JcbiAqIEBleHRlbmRzIFZhbGlkYXRvclxuICpcbiAqIEBjYXRlZ29yeSBWYWxpZGF0b3JzXG4gKi9cbkB2YWxpZGF0b3IoVmFsaWRhdGlvbktleXMuRVFVQUxTKVxuZXhwb3J0IGNsYXNzIEVxdWFsc1ZhbGlkYXRvciBleHRlbmRzIFZhbGlkYXRvcjxFcXVhbHNWYWxpZGF0b3JPcHRpb25zPiB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZyA9IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuRVFVQUxTKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgVmFsaWRhdGVzIGEgbW9kZWxcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gICAqIEBwYXJhbSB7Q29tcGFyaXNvblZhbGlkYXRvck9wdGlvbnN9IG9wdGlvbnNcbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKlxuICAgKiBAb3ZlcnJpZGVcbiAgICogQHNlZSBWYWxpZGF0b3IjaGFzRXJyb3JzXG4gICAqL1xuICBwdWJsaWMgaGFzRXJyb3JzKFxuICAgIHZhbHVlOiBhbnksXG4gICAgb3B0aW9uczogRXF1YWxzVmFsaWRhdG9yT3B0aW9ucyxcbiAgICBpbnN0YW5jZTogYW55XG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IGNvbXBhcmlzb25Qcm9wZXJ0eVZhbHVlOiBhbnk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbXBhcmlzb25Qcm9wZXJ0eVZhbHVlID0gZ2V0VmFsdWVCeVBhdGgoXG4gICAgICAgIGluc3RhbmNlLFxuICAgICAgICBvcHRpb25zW1ZhbGlkYXRpb25LZXlzLkVRVUFMU11cbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRNZXNzYWdlKGUubWVzc2FnZSB8fCB0aGlzLm1lc3NhZ2UpO1xuICAgIH1cblxuICAgIHJldHVybiBpc0VxdWFsKHZhbHVlLCBjb21wYXJpc29uUHJvcGVydHlWYWx1ZSlcbiAgICAgID8gdW5kZWZpbmVkXG4gICAgICA6IHRoaXMuZ2V0TWVzc2FnZShcbiAgICAgICAgICBvcHRpb25zLm1lc3NhZ2UgfHwgdGhpcy5tZXNzYWdlLFxuICAgICAgICAgIG9wdGlvbnNbVmFsaWRhdGlvbktleXMuRVFVQUxTXVxuICAgICAgICApO1xuICB9XG59XG5cbi8vIFZhbGlkYXRpb24ucmVnaXN0ZXIoe1xuLy8gICB2YWxpZGF0b3I6IEVxdWFsc1ZhbGlkYXRvcixcbi8vICAgdmFsaWRhdGlvbktleTogVmFsaWRhdGlvbktleXMuRVFVQUxTLFxuLy8gICBzYXZlOiBmYWxzZSxcbi8vIH0gYXMgVmFsaWRhdG9yRGVmaW5pdGlvbik7XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Validator } from "./Validator";
|
|
2
|
-
import
|
|
2
|
+
import { EqualsValidatorOptions } from "../types";
|
|
3
3
|
/**
|
|
4
4
|
* @summary Equals Validator
|
|
5
5
|
*
|
|
@@ -10,7 +10,7 @@ import type { ComparisonValidatorOptions } from "../types";
|
|
|
10
10
|
*
|
|
11
11
|
* @category Validators
|
|
12
12
|
*/
|
|
13
|
-
export declare class EqualsValidator extends Validator<
|
|
13
|
+
export declare class EqualsValidator extends Validator<EqualsValidatorOptions> {
|
|
14
14
|
constructor(message?: string);
|
|
15
15
|
/**
|
|
16
16
|
* @summary Validates a model
|
|
@@ -23,5 +23,5 @@ export declare class EqualsValidator extends Validator<ComparisonValidatorOption
|
|
|
23
23
|
* @override
|
|
24
24
|
* @see Validator#hasErrors
|
|
25
25
|
*/
|
|
26
|
-
hasErrors(value: any, options:
|
|
26
|
+
hasErrors(value: any, options: EqualsValidatorOptions, instance: any): string | undefined;
|
|
27
27
|
}
|
|
@@ -43,7 +43,7 @@ let GreaterThanOrEqualValidator = class GreaterThanOrEqualValidator extends Vali
|
|
|
43
43
|
hasErrors(value, options, instance) {
|
|
44
44
|
let comparisonPropertyValue;
|
|
45
45
|
try {
|
|
46
|
-
comparisonPropertyValue = (0, utils_1.getValueByPath)(instance, options.
|
|
46
|
+
comparisonPropertyValue = (0, utils_1.getValueByPath)(instance, options[constants_1.ValidationKeys.GREATER_THAN_OR_EQUAL]);
|
|
47
47
|
}
|
|
48
48
|
catch (e) {
|
|
49
49
|
return this.getMessage(e.message || this.message);
|
|
@@ -56,7 +56,7 @@ let GreaterThanOrEqualValidator = class GreaterThanOrEqualValidator extends Vali
|
|
|
56
56
|
throw new Error(options.message || this.message);
|
|
57
57
|
}
|
|
58
58
|
catch (e) {
|
|
59
|
-
return this.getMessage(e.message, options.
|
|
59
|
+
return this.getMessage(e.message, options[constants_1.ValidationKeys.GREATER_THAN_OR_EQUAL]);
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
};
|
|
@@ -65,4 +65,4 @@ exports.GreaterThanOrEqualValidator = GreaterThanOrEqualValidator = __decorate([
|
|
|
65
65
|
(0, decorators_1.validator)(constants_1.ValidationKeys.GREATER_THAN_OR_EQUAL),
|
|
66
66
|
__metadata("design:paramtypes", [String])
|
|
67
67
|
], GreaterThanOrEqualValidator);
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JlYXRlclRoYW5PckVxdWFsVmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3ZhbGlkYXRpb24vVmFsaWRhdG9ycy9HcmVhdGVyVGhhbk9yRXF1YWxWYWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQXdDO0FBQ3hDLCtDQUFxRTtBQUNyRSxpREFBeUM7QUFFekMsdUNBSWlCO0FBQ2pCLHFEQUErQztBQUUvQzs7Ozs7Ozs7O0dBU0c7QUFFSSxJQUFNLDJCQUEyQixHQUFqQyxNQUFNLDJCQUE0QixTQUFRLHFCQUE2QztJQUM1RixZQUFZLFVBQWtCLGtDQUFzQixDQUFDLHFCQUFxQjtRQUN4RSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxTQUFTLENBQ2QsS0FBVSxFQUNWLE9BQTJDLEVBQzNDLFFBQWE7UUFFYixJQUFJLHVCQUE0QixDQUFDO1FBQ2pDLElBQUksQ0FBQztZQUNILHVCQUF1QixHQUFHLElBQUEsc0JBQWMsRUFDdEMsUUFBUSxFQUNSLE9BQU8sQ0FBQywwQkFBYyxDQUFDLHFCQUFxQixDQUFDLENBQzlDLENBQUM7UUFDSixDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUVELElBQUksQ0FBQztZQUNILElBQ0UsQ0FBQyxJQUFBLG9DQUE0QixFQUFDLEtBQUssRUFBRSx1QkFBdUIsQ0FBQztnQkFDM0QsSUFBQSxvQkFBTyxFQUFDLEtBQUssRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO2dCQUMxQyxJQUFBLHFCQUFhLEVBQUMsS0FBSyxFQUFFLHVCQUF1QixDQUFDO2dCQUU3QyxPQUFPLFNBQVMsQ0FBQztZQUVuQixNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FDcEIsQ0FBQyxDQUFDLE9BQU8sRUFDVCxPQUFPLENBQUMsMEJBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUM5QyxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7Q0FDRixDQUFBO0FBL0NZLGtFQUEyQjtzQ0FBM0IsMkJBQTJCO0lBRHZDLElBQUEsc0JBQVMsRUFBQywwQkFBYyxDQUFDLHFCQUFxQixDQUFDOztHQUNuQywyQkFBMkIsQ0ErQ3ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSBcIi4vVmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBERUZBVUxUX0VSUk9SX01FU1NBR0VTLCBWYWxpZGF0aW9uS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgdmFsaWRhdG9yIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgR3JlYXRlclRoYW5PckVxdWFsVmFsaWRhdG9yT3B0aW9ucyB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHtcbiAgZ2V0VmFsdWVCeVBhdGgsXG4gIGlzR3JlYXRlclRoYW4sXG4gIGlzVmFsaWRGb3JHdGVPckx0ZUNvbXBhcmlzb24sXG59IGZyb20gXCIuL3V0aWxzXCI7XG5pbXBvcnQgeyBpc0VxdWFsIH0gZnJvbSBcIkBkZWNhZi10cy9yZWZsZWN0aW9uXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgR3JlYXRlciBUaGFuIG9yIEVxdWFsIFZhbGlkYXRvclxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZV0gZGVmYXVsdHMgdG8ge0BsaW5rIERFRkFVTFRfRVJST1JfTUVTU0FHRVMjR1JFQVRFUl9USEFOX09SX0VRVUFMfVxuICpcbiAqIEBjbGFzcyBHcmVhdGVyVGhhbk9yRXF1YWxWYWxpZGF0b3JcbiAqIEBleHRlbmRzIFZhbGlkYXRvclxuICpcbiAqIEBjYXRlZ29yeSBWYWxpZGF0b3JzXG4gKi9cbkB2YWxpZGF0b3IoVmFsaWRhdGlvbktleXMuR1JFQVRFUl9USEFOX09SX0VRVUFMKVxuZXhwb3J0IGNsYXNzIEdyZWF0ZXJUaGFuT3JFcXVhbFZhbGlkYXRvciBleHRlbmRzIFZhbGlkYXRvcjxHcmVhdGVyVGhhbk9yRXF1YWxWYWxpZGF0b3JPcHRpb25zPiB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZyA9IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuR1JFQVRFUl9USEFOX09SX0VRVUFMKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgVmFsaWRhdGVzIGEgbW9kZWxcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gICAqIEBwYXJhbSB7Q29tcGFyaXNvblZhbGlkYXRvck9wdGlvbnN9IG9wdGlvbnNcbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKlxuICAgKiBAb3ZlcnJpZGVcbiAgICogQHNlZSBWYWxpZGF0b3IjaGFzRXJyb3JzXG4gICAqL1xuICBwdWJsaWMgaGFzRXJyb3JzKFxuICAgIHZhbHVlOiBhbnksXG4gICAgb3B0aW9uczogR3JlYXRlclRoYW5PckVxdWFsVmFsaWRhdG9yT3B0aW9ucyxcbiAgICBpbnN0YW5jZTogYW55XG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IGNvbXBhcmlzb25Qcm9wZXJ0eVZhbHVlOiBhbnk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbXBhcmlzb25Qcm9wZXJ0eVZhbHVlID0gZ2V0VmFsdWVCeVBhdGgoXG4gICAgICAgIGluc3RhbmNlLFxuICAgICAgICBvcHRpb25zW1ZhbGlkYXRpb25LZXlzLkdSRUFURVJfVEhBTl9PUl9FUVVBTF1cbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRNZXNzYWdlKGUubWVzc2FnZSB8fCB0aGlzLm1lc3NhZ2UpO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBpZiAoXG4gICAgICAgIChpc1ZhbGlkRm9yR3RlT3JMdGVDb21wYXJpc29uKHZhbHVlLCBjb21wYXJpc29uUHJvcGVydHlWYWx1ZSkgJiZcbiAgICAgICAgICBpc0VxdWFsKHZhbHVlLCBjb21wYXJpc29uUHJvcGVydHlWYWx1ZSkpIHx8XG4gICAgICAgIGlzR3JlYXRlclRoYW4odmFsdWUsIGNvbXBhcmlzb25Qcm9wZXJ0eVZhbHVlKVxuICAgICAgKVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgICB0aHJvdyBuZXcgRXJyb3Iob3B0aW9ucy5tZXNzYWdlIHx8IHRoaXMubWVzc2FnZSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRNZXNzYWdlKFxuICAgICAgICBlLm1lc3NhZ2UsXG4gICAgICAgIG9wdGlvbnNbVmFsaWRhdGlvbktleXMuR1JFQVRFUl9USEFOX09SX0VRVUFMXVxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Validator } from "./Validator";
|
|
2
|
-
import
|
|
2
|
+
import { GreaterThanOrEqualValidatorOptions } from "../types";
|
|
3
3
|
/**
|
|
4
4
|
* @summary Greater Than or Equal Validator
|
|
5
5
|
*
|
|
@@ -10,7 +10,7 @@ import type { ComparisonValidatorOptions } from "../types";
|
|
|
10
10
|
*
|
|
11
11
|
* @category Validators
|
|
12
12
|
*/
|
|
13
|
-
export declare class GreaterThanOrEqualValidator extends Validator<
|
|
13
|
+
export declare class GreaterThanOrEqualValidator extends Validator<GreaterThanOrEqualValidatorOptions> {
|
|
14
14
|
constructor(message?: string);
|
|
15
15
|
/**
|
|
16
16
|
* @summary Validates a model
|
|
@@ -23,5 +23,5 @@ export declare class GreaterThanOrEqualValidator extends Validator<ComparisonVal
|
|
|
23
23
|
* @override
|
|
24
24
|
* @see Validator#hasErrors
|
|
25
25
|
*/
|
|
26
|
-
hasErrors(value: any, options:
|
|
26
|
+
hasErrors(value: any, options: GreaterThanOrEqualValidatorOptions, instance: any): string | undefined;
|
|
27
27
|
}
|
|
@@ -42,7 +42,7 @@ let GreaterThanValidator = class GreaterThanValidator extends Validator_1.Valida
|
|
|
42
42
|
hasErrors(value, options, instance) {
|
|
43
43
|
let comparisonPropertyValue;
|
|
44
44
|
try {
|
|
45
|
-
comparisonPropertyValue = (0, utils_1.getValueByPath)(instance, options.
|
|
45
|
+
comparisonPropertyValue = (0, utils_1.getValueByPath)(instance, options[constants_1.ValidationKeys.GREATER_THAN]);
|
|
46
46
|
}
|
|
47
47
|
catch (e) {
|
|
48
48
|
return this.getMessage(e.message || this.message);
|
|
@@ -52,7 +52,7 @@ let GreaterThanValidator = class GreaterThanValidator extends Validator_1.Valida
|
|
|
52
52
|
throw new Error(options.message || this.message);
|
|
53
53
|
}
|
|
54
54
|
catch (e) {
|
|
55
|
-
return this.getMessage(e.message, options.
|
|
55
|
+
return this.getMessage(e.message, options[constants_1.ValidationKeys.GREATER_THAN]);
|
|
56
56
|
}
|
|
57
57
|
return undefined;
|
|
58
58
|
}
|
|
@@ -62,4 +62,4 @@ exports.GreaterThanValidator = GreaterThanValidator = __decorate([
|
|
|
62
62
|
(0, decorators_1.validator)(constants_1.ValidationKeys.GREATER_THAN),
|
|
63
63
|
__metadata("design:paramtypes", [String])
|
|
64
64
|
], GreaterThanValidator);
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JlYXRlclRoYW5WYWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdmFsaWRhdGlvbi9WYWxpZGF0b3JzL0dyZWF0ZXJUaGFuVmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLCtDQUF3QztBQUN4QywrQ0FBcUU7QUFDckUsaURBQXlDO0FBRXpDLHVDQUF3RDtBQUV4RDs7Ozs7Ozs7O0dBU0c7QUFFSSxJQUFNLG9CQUFvQixHQUExQixNQUFNLG9CQUFxQixTQUFRLHFCQUFzQztJQUM5RSxZQUFZLFVBQWtCLGtDQUFzQixDQUFDLFlBQVk7UUFDL0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksU0FBUyxDQUNkLEtBQVUsRUFDVixPQUFvQyxFQUNwQyxRQUFhO1FBRWIsSUFBSSx1QkFBNEIsQ0FBQztRQUNqQyxJQUFJLENBQUM7WUFDSCx1QkFBdUIsR0FBRyxJQUFBLHNCQUFjLEVBQ3RDLFFBQVEsRUFDUixPQUFPLENBQUMsMEJBQWMsQ0FBQyxZQUFZLENBQUMsQ0FDckMsQ0FBQztRQUNKLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBRUQsSUFBSSxDQUFDO1lBQ0gsSUFBSSxDQUFDLElBQUEscUJBQWEsRUFBQyxLQUFLLEVBQUUsdUJBQXVCLENBQUM7Z0JBQ2hELE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLDBCQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUMxRSxDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztDQUNGLENBQUE7QUF4Q1ksb0RBQW9COytCQUFwQixvQkFBb0I7SUFEaEMsSUFBQSxzQkFBUyxFQUFDLDBCQUFjLENBQUMsWUFBWSxDQUFDOztHQUMxQixvQkFBb0IsQ0F3Q2hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSBcIi4vVmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBERUZBVUxUX0VSUk9SX01FU1NBR0VTLCBWYWxpZGF0aW9uS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgdmFsaWRhdG9yIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgR3JlYXRlclRoYW5WYWxpZGF0b3JPcHRpb25zIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBnZXRWYWx1ZUJ5UGF0aCwgaXNHcmVhdGVyVGhhbiB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgR3JlYXRlciBUaGFuIFZhbGlkYXRvclxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZV0gZGVmYXVsdHMgdG8ge0BsaW5rIERFRkFVTFRfRVJST1JfTUVTU0FHRVMjR1JFQVRFUl9USEFOfVxuICpcbiAqIEBjbGFzcyBHcmVhdGVyVGhhblZhbGlkYXRvclxuICogQGV4dGVuZHMgVmFsaWRhdG9yXG4gKlxuICogQGNhdGVnb3J5IFZhbGlkYXRvcnNcbiAqL1xuQHZhbGlkYXRvcihWYWxpZGF0aW9uS2V5cy5HUkVBVEVSX1RIQU4pXG5leHBvcnQgY2xhc3MgR3JlYXRlclRoYW5WYWxpZGF0b3IgZXh0ZW5kcyBWYWxpZGF0b3I8R3JlYXRlclRoYW5WYWxpZGF0b3JPcHRpb25zPiB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZyA9IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuR1JFQVRFUl9USEFOKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgVmFsaWRhdGVzIGEgbW9kZWxcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gICAqIEBwYXJhbSB7Q29tcGFyaXNvblZhbGlkYXRvck9wdGlvbnN9IG9wdGlvbnNcbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKlxuICAgKiBAb3ZlcnJpZGVcbiAgICogQHNlZSBWYWxpZGF0b3IjaGFzRXJyb3JzXG4gICAqL1xuICBwdWJsaWMgaGFzRXJyb3JzKFxuICAgIHZhbHVlOiBhbnksXG4gICAgb3B0aW9uczogR3JlYXRlclRoYW5WYWxpZGF0b3JPcHRpb25zLFxuICAgIGluc3RhbmNlOiBhbnlcbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBsZXQgY29tcGFyaXNvblByb3BlcnR5VmFsdWU6IGFueTtcbiAgICB0cnkge1xuICAgICAgY29tcGFyaXNvblByb3BlcnR5VmFsdWUgPSBnZXRWYWx1ZUJ5UGF0aChcbiAgICAgICAgaW5zdGFuY2UsXG4gICAgICAgIG9wdGlvbnNbVmFsaWRhdGlvbktleXMuR1JFQVRFUl9USEFOXVxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldE1lc3NhZ2UoZS5tZXNzYWdlIHx8IHRoaXMubWVzc2FnZSk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGlmICghaXNHcmVhdGVyVGhhbih2YWx1ZSwgY29tcGFyaXNvblByb3BlcnR5VmFsdWUpKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3Iob3B0aW9ucy5tZXNzYWdlIHx8IHRoaXMubWVzc2FnZSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRNZXNzYWdlKGUubWVzc2FnZSwgb3B0aW9uc1tWYWxpZGF0aW9uS2V5cy5HUkVBVEVSX1RIQU5dKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Validator } from "./Validator";
|
|
2
|
-
import
|
|
2
|
+
import { GreaterThanValidatorOptions } from "../types";
|
|
3
3
|
/**
|
|
4
4
|
* @summary Greater Than Validator
|
|
5
5
|
*
|
|
@@ -10,7 +10,7 @@ import type { ComparisonValidatorOptions } from "../types";
|
|
|
10
10
|
*
|
|
11
11
|
* @category Validators
|
|
12
12
|
*/
|
|
13
|
-
export declare class GreaterThanValidator extends Validator<
|
|
13
|
+
export declare class GreaterThanValidator extends Validator<GreaterThanValidatorOptions> {
|
|
14
14
|
constructor(message?: string);
|
|
15
15
|
/**
|
|
16
16
|
* @summary Validates a model
|
|
@@ -23,5 +23,5 @@ export declare class GreaterThanValidator extends Validator<ComparisonValidatorO
|
|
|
23
23
|
* @override
|
|
24
24
|
* @see Validator#hasErrors
|
|
25
25
|
*/
|
|
26
|
-
hasErrors(value: any, options:
|
|
26
|
+
hasErrors(value: any, options: GreaterThanValidatorOptions, instance: any): string | undefined;
|
|
27
27
|
}
|
|
@@ -43,7 +43,7 @@ let LessThanOrEqualValidator = class LessThanOrEqualValidator extends Validator_
|
|
|
43
43
|
hasErrors(value, options, instance) {
|
|
44
44
|
let comparisonPropertyValue;
|
|
45
45
|
try {
|
|
46
|
-
comparisonPropertyValue = (0, utils_1.getValueByPath)(instance, options.
|
|
46
|
+
comparisonPropertyValue = (0, utils_1.getValueByPath)(instance, options[constants_1.ValidationKeys.LESS_THAN_OR_EQUAL]);
|
|
47
47
|
}
|
|
48
48
|
catch (e) {
|
|
49
49
|
return this.getMessage(e.message || this.message);
|
|
@@ -56,7 +56,7 @@ let LessThanOrEqualValidator = class LessThanOrEqualValidator extends Validator_
|
|
|
56
56
|
throw new Error(options.message || this.message);
|
|
57
57
|
}
|
|
58
58
|
catch (e) {
|
|
59
|
-
return this.getMessage(e.message, options.
|
|
59
|
+
return this.getMessage(e.message, options[constants_1.ValidationKeys.LESS_THAN_OR_EQUAL]);
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
};
|
|
@@ -65,4 +65,4 @@ exports.LessThanOrEqualValidator = LessThanOrEqualValidator = __decorate([
|
|
|
65
65
|
(0, decorators_1.validator)(constants_1.ValidationKeys.LESS_THAN_OR_EQUAL),
|
|
66
66
|
__metadata("design:paramtypes", [String])
|
|
67
67
|
], LessThanOrEqualValidator);
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGVzc1RoYW5PckVxdWFsVmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3ZhbGlkYXRpb24vVmFsaWRhdG9ycy9MZXNzVGhhbk9yRXF1YWxWYWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQXdDO0FBQ3hDLCtDQUFxRTtBQUNyRSxpREFBeUM7QUFFekMsdUNBSWlCO0FBQ2pCLHFEQUErQztBQUUvQzs7Ozs7Ozs7O0dBU0c7QUFFSSxJQUFNLHdCQUF3QixHQUE5QixNQUFNLHdCQUF5QixTQUFRLHFCQUEwQztJQUN0RixZQUFZLFVBQWtCLGtDQUFzQixDQUFDLGtCQUFrQjtRQUNyRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxTQUFTLENBQ2QsS0FBVSxFQUNWLE9BQXdDLEVBQ3hDLFFBQWE7UUFFYixJQUFJLHVCQUE0QixDQUFDO1FBQ2pDLElBQUksQ0FBQztZQUNILHVCQUF1QixHQUFHLElBQUEsc0JBQWMsRUFDdEMsUUFBUSxFQUNSLE9BQU8sQ0FBQywwQkFBYyxDQUFDLGtCQUFrQixDQUFDLENBQzNDLENBQUM7UUFDSixDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUVELElBQUksQ0FBQztZQUNILElBQ0UsQ0FBQyxJQUFBLG9DQUE0QixFQUFDLEtBQUssRUFBRSx1QkFBdUIsQ0FBQztnQkFDM0QsSUFBQSxvQkFBTyxFQUFDLEtBQUssRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO2dCQUMxQyxJQUFBLGtCQUFVLEVBQUMsS0FBSyxFQUFFLHVCQUF1QixDQUFDO2dCQUUxQyxPQUFPLFNBQVMsQ0FBQztZQUVuQixNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FDcEIsQ0FBQyxDQUFDLE9BQU8sRUFDVCxPQUFPLENBQUMsMEJBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUMzQyxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7Q0FDRixDQUFBO0FBL0NZLDREQUF3QjttQ0FBeEIsd0JBQXdCO0lBRHBDLElBQUEsc0JBQVMsRUFBQywwQkFBYyxDQUFDLGtCQUFrQixDQUFDOztHQUNoQyx3QkFBd0IsQ0ErQ3BDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSBcIi4vVmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBERUZBVUxUX0VSUk9SX01FU1NBR0VTLCBWYWxpZGF0aW9uS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgdmFsaWRhdG9yIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHR5cGUgeyBMZXNzVGhhbk9yRXF1YWxWYWxpZGF0b3JPcHRpb25zIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQge1xuICBnZXRWYWx1ZUJ5UGF0aCxcbiAgaXNMZXNzVGhhbixcbiAgaXNWYWxpZEZvckd0ZU9yTHRlQ29tcGFyaXNvbixcbn0gZnJvbSBcIi4vdXRpbHNcIjtcbmltcG9ydCB7IGlzRXF1YWwgfSBmcm9tIFwiQGRlY2FmLXRzL3JlZmxlY3Rpb25cIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBMZXNzIFRoYW4gb3IgRXF1YWwgVmFsaWRhdG9yXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IFttZXNzYWdlXSBkZWZhdWx0cyB0byB7QGxpbmsgREVGQVVMVF9FUlJPUl9NRVNTQUdFUyNMRVNTX1RIQU5fT1JfRVFVQUx9XG4gKlxuICogQGNsYXNzIExlc3NUaGFuT3JFcXVhbFZhbGlkYXRvclxuICogQGV4dGVuZHMgVmFsaWRhdG9yXG4gKlxuICogQGNhdGVnb3J5IFZhbGlkYXRvcnNcbiAqL1xuQHZhbGlkYXRvcihWYWxpZGF0aW9uS2V5cy5MRVNTX1RIQU5fT1JfRVFVQUwpXG5leHBvcnQgY2xhc3MgTGVzc1RoYW5PckVxdWFsVmFsaWRhdG9yIGV4dGVuZHMgVmFsaWRhdG9yPExlc3NUaGFuT3JFcXVhbFZhbGlkYXRvck9wdGlvbnM+IHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nID0gREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5MRVNTX1RIQU5fT1JfRVFVQUwpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBWYWxpZGF0ZXMgYSBtb2RlbFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAgICogQHBhcmFtIHtDb21wYXJpc29uVmFsaWRhdG9yT3B0aW9uc30gb3B0aW9uc1xuICAgKlxuICAgKiBAcmV0dXJuIHtzdHJpbmcgfCB1bmRlZmluZWR9XG4gICAqXG4gICAqIEBvdmVycmlkZVxuICAgKiBAc2VlIFZhbGlkYXRvciNoYXNFcnJvcnNcbiAgICovXG4gIHB1YmxpYyBoYXNFcnJvcnMoXG4gICAgdmFsdWU6IGFueSxcbiAgICBvcHRpb25zOiBMZXNzVGhhbk9yRXF1YWxWYWxpZGF0b3JPcHRpb25zLFxuICAgIGluc3RhbmNlOiBhbnlcbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBsZXQgY29tcGFyaXNvblByb3BlcnR5VmFsdWU6IGFueTtcbiAgICB0cnkge1xuICAgICAgY29tcGFyaXNvblByb3BlcnR5VmFsdWUgPSBnZXRWYWx1ZUJ5UGF0aChcbiAgICAgICAgaW5zdGFuY2UsXG4gICAgICAgIG9wdGlvbnNbVmFsaWRhdGlvbktleXMuTEVTU19USEFOX09SX0VRVUFMXVxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldE1lc3NhZ2UoZS5tZXNzYWdlIHx8IHRoaXMubWVzc2FnZSk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGlmIChcbiAgICAgICAgKGlzVmFsaWRGb3JHdGVPckx0ZUNvbXBhcmlzb24odmFsdWUsIGNvbXBhcmlzb25Qcm9wZXJ0eVZhbHVlKSAmJlxuICAgICAgICAgIGlzRXF1YWwodmFsdWUsIGNvbXBhcmlzb25Qcm9wZXJ0eVZhbHVlKSkgfHxcbiAgICAgICAgaXNMZXNzVGhhbih2YWx1ZSwgY29tcGFyaXNvblByb3BlcnR5VmFsdWUpXG4gICAgICApXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICAgIHRocm93IG5ldyBFcnJvcihvcHRpb25zLm1lc3NhZ2UgfHwgdGhpcy5tZXNzYWdlKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldE1lc3NhZ2UoXG4gICAgICAgIGUubWVzc2FnZSxcbiAgICAgICAgb3B0aW9uc1tWYWxpZGF0aW9uS2V5cy5MRVNTX1RIQU5fT1JfRVFVQUxdXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Validator } from "./Validator";
|
|
2
|
-
import type {
|
|
2
|
+
import type { LessThanOrEqualValidatorOptions } from "../types";
|
|
3
3
|
/**
|
|
4
4
|
* @summary Less Than or Equal Validator
|
|
5
5
|
*
|
|
@@ -10,7 +10,7 @@ import type { ComparisonValidatorOptions } from "../types";
|
|
|
10
10
|
*
|
|
11
11
|
* @category Validators
|
|
12
12
|
*/
|
|
13
|
-
export declare class LessThanOrEqualValidator extends Validator<
|
|
13
|
+
export declare class LessThanOrEqualValidator extends Validator<LessThanOrEqualValidatorOptions> {
|
|
14
14
|
constructor(message?: string);
|
|
15
15
|
/**
|
|
16
16
|
* @summary Validates a model
|
|
@@ -23,5 +23,5 @@ export declare class LessThanOrEqualValidator extends Validator<ComparisonValida
|
|
|
23
23
|
* @override
|
|
24
24
|
* @see Validator#hasErrors
|
|
25
25
|
*/
|
|
26
|
-
hasErrors(value: any, options:
|
|
26
|
+
hasErrors(value: any, options: LessThanOrEqualValidatorOptions, instance: any): string | undefined;
|
|
27
27
|
}
|
|
@@ -42,7 +42,7 @@ let LessThanValidator = class LessThanValidator extends Validator_1.Validator {
|
|
|
42
42
|
hasErrors(value, options, instance) {
|
|
43
43
|
let comparisonPropertyValue;
|
|
44
44
|
try {
|
|
45
|
-
comparisonPropertyValue = (0, utils_1.getValueByPath)(instance, options.
|
|
45
|
+
comparisonPropertyValue = (0, utils_1.getValueByPath)(instance, options[constants_1.ValidationKeys.LESS_THAN]);
|
|
46
46
|
}
|
|
47
47
|
catch (e) {
|
|
48
48
|
return this.getMessage(e.message || this.message);
|
|
@@ -52,7 +52,7 @@ let LessThanValidator = class LessThanValidator extends Validator_1.Validator {
|
|
|
52
52
|
throw new Error(options.message || this.message);
|
|
53
53
|
}
|
|
54
54
|
catch (e) {
|
|
55
|
-
return this.getMessage(e.message, options.
|
|
55
|
+
return this.getMessage(e.message, options[constants_1.ValidationKeys.LESS_THAN]);
|
|
56
56
|
}
|
|
57
57
|
return undefined;
|
|
58
58
|
}
|
|
@@ -62,4 +62,4 @@ exports.LessThanValidator = LessThanValidator = __decorate([
|
|
|
62
62
|
(0, decorators_1.validator)(constants_1.ValidationKeys.LESS_THAN),
|
|
63
63
|
__metadata("design:paramtypes", [String])
|
|
64
64
|
], LessThanValidator);
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGVzc1RoYW5WYWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdmFsaWRhdGlvbi9WYWxpZGF0b3JzL0xlc3NUaGFuVmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLCtDQUF3QztBQUN4QywrQ0FBcUU7QUFDckUsaURBQXlDO0FBRXpDLHVDQUFxRDtBQUVyRDs7Ozs7Ozs7O0dBU0c7QUFFSSxJQUFNLGlCQUFpQixHQUF2QixNQUFNLGlCQUFrQixTQUFRLHFCQUFtQztJQUN4RSxZQUFZLFVBQWtCLGtDQUFzQixDQUFDLFNBQVM7UUFDNUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksU0FBUyxDQUNkLEtBQVUsRUFDVixPQUFpQyxFQUNqQyxRQUFhO1FBRWIsSUFBSSx1QkFBNEIsQ0FBQztRQUNqQyxJQUFJLENBQUM7WUFDSCx1QkFBdUIsR0FBRyxJQUFBLHNCQUFjLEVBQ3RDLFFBQVEsRUFDUixPQUFPLENBQUMsMEJBQWMsQ0FBQyxTQUFTLENBQUMsQ0FDbEMsQ0FBQztRQUNKLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBRUQsSUFBSSxDQUFDO1lBQ0gsSUFBSSxDQUFDLElBQUEsa0JBQVUsRUFBQyxLQUFLLEVBQUUsdUJBQXVCLENBQUM7Z0JBQzdDLE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLDBCQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN2RSxDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztDQUNGLENBQUE7QUF4Q1ksOENBQWlCOzRCQUFqQixpQkFBaUI7SUFEN0IsSUFBQSxzQkFBUyxFQUFDLDBCQUFjLENBQUMsU0FBUyxDQUFDOztHQUN2QixpQkFBaUIsQ0F3QzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yIH0gZnJvbSBcIi4vVmFsaWRhdG9yXCI7XG5pbXBvcnQgeyBERUZBVUxUX0VSUk9SX01FU1NBR0VTLCBWYWxpZGF0aW9uS2V5cyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgdmFsaWRhdG9yIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgTGVzc1RoYW5WYWxpZGF0b3JPcHRpb25zIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBnZXRWYWx1ZUJ5UGF0aCwgaXNMZXNzVGhhbiB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgTGVzcyBUaGFuIFZhbGlkYXRvclxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZV0gZGVmYXVsdHMgdG8ge0BsaW5rIERFRkFVTFRfRVJST1JfTUVTU0FHRVMjTEVTU19USEFOfVxuICpcbiAqIEBjbGFzcyBMZXNzVGhhblZhbGlkYXRvclxuICogQGV4dGVuZHMgVmFsaWRhdG9yXG4gKlxuICogQGNhdGVnb3J5IFZhbGlkYXRvcnNcbiAqL1xuQHZhbGlkYXRvcihWYWxpZGF0aW9uS2V5cy5MRVNTX1RIQU4pXG5leHBvcnQgY2xhc3MgTGVzc1RoYW5WYWxpZGF0b3IgZXh0ZW5kcyBWYWxpZGF0b3I8TGVzc1RoYW5WYWxpZGF0b3JPcHRpb25zPiB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZyA9IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuTEVTU19USEFOKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgVmFsaWRhdGVzIGEgbW9kZWxcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gICAqIEBwYXJhbSB7Q29tcGFyaXNvblZhbGlkYXRvck9wdGlvbnN9IG9wdGlvbnNcbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKlxuICAgKiBAb3ZlcnJpZGVcbiAgICogQHNlZSBWYWxpZGF0b3IjaGFzRXJyb3JzXG4gICAqL1xuICBwdWJsaWMgaGFzRXJyb3JzKFxuICAgIHZhbHVlOiBhbnksXG4gICAgb3B0aW9uczogTGVzc1RoYW5WYWxpZGF0b3JPcHRpb25zLFxuICAgIGluc3RhbmNlOiBhbnlcbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBsZXQgY29tcGFyaXNvblByb3BlcnR5VmFsdWU6IGFueTtcbiAgICB0cnkge1xuICAgICAgY29tcGFyaXNvblByb3BlcnR5VmFsdWUgPSBnZXRWYWx1ZUJ5UGF0aChcbiAgICAgICAgaW5zdGFuY2UsXG4gICAgICAgIG9wdGlvbnNbVmFsaWRhdGlvbktleXMuTEVTU19USEFOXVxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldE1lc3NhZ2UoZS5tZXNzYWdlIHx8IHRoaXMubWVzc2FnZSk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGlmICghaXNMZXNzVGhhbih2YWx1ZSwgY29tcGFyaXNvblByb3BlcnR5VmFsdWUpKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3Iob3B0aW9ucy5tZXNzYWdlIHx8IHRoaXMubWVzc2FnZSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRNZXNzYWdlKGUubWVzc2FnZSwgb3B0aW9uc1tWYWxpZGF0aW9uS2V5cy5MRVNTX1RIQU5dKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Validator } from "./Validator";
|
|
2
|
-
import
|
|
2
|
+
import { LessThanValidatorOptions } from "../types";
|
|
3
3
|
/**
|
|
4
4
|
* @summary Less Than Validator
|
|
5
5
|
*
|
|
@@ -10,7 +10,7 @@ import type { ComparisonValidatorOptions } from "../types";
|
|
|
10
10
|
*
|
|
11
11
|
* @category Validators
|
|
12
12
|
*/
|
|
13
|
-
export declare class LessThanValidator extends Validator<
|
|
13
|
+
export declare class LessThanValidator extends Validator<LessThanValidatorOptions> {
|
|
14
14
|
constructor(message?: string);
|
|
15
15
|
/**
|
|
16
16
|
* @summary Validates a model
|
|
@@ -23,5 +23,5 @@ export declare class LessThanValidator extends Validator<ComparisonValidatorOpti
|
|
|
23
23
|
* @override
|
|
24
24
|
* @see Validator#hasErrors
|
|
25
25
|
*/
|
|
26
|
-
hasErrors(value: any, options:
|
|
26
|
+
hasErrors(value: any, options: LessThanValidatorOptions, instance: any): string | undefined;
|
|
27
27
|
}
|
|
@@ -14,13 +14,48 @@ const Validator_1 = require("./Validator.cjs");
|
|
|
14
14
|
const constants_1 = require("./constants.cjs");
|
|
15
15
|
const decorators_1 = require("./decorators.cjs");
|
|
16
16
|
/**
|
|
17
|
-
* @
|
|
17
|
+
* @description Validator for checking if elements in a list or set match expected types
|
|
18
|
+
* @summary The ListValidator validates that all elements in an array or Set match the expected types.
|
|
19
|
+
* It checks each element against a list of allowed class types and ensures type consistency.
|
|
20
|
+
* This validator is typically used with the @list decorator.
|
|
18
21
|
*
|
|
19
|
-
* @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#LIST}
|
|
22
|
+
* @param {string} [message] - Custom error message to display when validation fails, defaults to {@link DEFAULT_ERROR_MESSAGES#LIST}
|
|
20
23
|
*
|
|
21
24
|
* @class ListValidator
|
|
22
25
|
* @extends Validator
|
|
23
26
|
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* // Create a list validator with default error message
|
|
30
|
+
* const listValidator = new ListValidator();
|
|
31
|
+
*
|
|
32
|
+
* // Create a list validator with custom error message
|
|
33
|
+
* const customListValidator = new ListValidator("All items must be of the specified type");
|
|
34
|
+
*
|
|
35
|
+
* // Validate a list
|
|
36
|
+
* const options = { clazz: ["String", "Number"] };
|
|
37
|
+
* const result = listValidator.hasErrors(["test", 123], options); // undefined (valid)
|
|
38
|
+
* const invalidResult = listValidator.hasErrors([new Date()], options); // Returns error message (invalid)
|
|
39
|
+
* ```
|
|
40
|
+
*
|
|
41
|
+
* @mermaid
|
|
42
|
+
* sequenceDiagram
|
|
43
|
+
* participant C as Client
|
|
44
|
+
* participant V as ListValidator
|
|
45
|
+
*
|
|
46
|
+
* C->>V: new ListValidator(message)
|
|
47
|
+
* C->>V: hasErrors(value, options)
|
|
48
|
+
* alt value is empty
|
|
49
|
+
* V-->>C: undefined (valid)
|
|
50
|
+
* else value has elements
|
|
51
|
+
* V->>V: Check each element's type
|
|
52
|
+
* alt All elements match allowed types
|
|
53
|
+
* V-->>C: undefined (valid)
|
|
54
|
+
* else Some elements don't match
|
|
55
|
+
* V-->>C: Error message
|
|
56
|
+
* end
|
|
57
|
+
* end
|
|
58
|
+
*
|
|
24
59
|
* @category Validators
|
|
25
60
|
*/
|
|
26
61
|
let ListValidator = class ListValidator extends Validator_1.Validator {
|
|
@@ -28,12 +63,15 @@ let ListValidator = class ListValidator extends Validator_1.Validator {
|
|
|
28
63
|
super(message, Array.name, Set.name);
|
|
29
64
|
}
|
|
30
65
|
/**
|
|
31
|
-
* @
|
|
66
|
+
* @description Checks if all elements in a list or set match the expected types
|
|
67
|
+
* @summary Validates that each element in the provided array or Set matches one of the
|
|
68
|
+
* class types specified in the options. For object types, it checks the constructor name,
|
|
69
|
+
* and for primitive types, it compares against the lowercase type name.
|
|
32
70
|
*
|
|
33
|
-
* @param {any[] | Set<any>} value
|
|
34
|
-
* @param {ListValidatorOptions} options
|
|
71
|
+
* @param {any[] | Set<any>} value - The array or Set to validate
|
|
72
|
+
* @param {ListValidatorOptions} options - Configuration options containing the allowed class types
|
|
35
73
|
*
|
|
36
|
-
* @return {string | undefined}
|
|
74
|
+
* @return {string | undefined} Error message if validation fails, undefined if validation passes
|
|
37
75
|
*
|
|
38
76
|
* @override
|
|
39
77
|
*
|
|
@@ -68,4 +106,4 @@ exports.ListValidator = ListValidator = __decorate([
|
|
|
68
106
|
(0, decorators_1.validator)(constants_1.ValidationKeys.LIST),
|
|
69
107
|
__metadata("design:paramtypes", [String])
|
|
70
108
|
], ListValidator);
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGlzdFZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvTGlzdFZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSwrQ0FBd0M7QUFDeEMsK0NBQXFFO0FBQ3JFLGlEQUF5QztBQUd6Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0Q0c7QUFFSSxJQUFNLGFBQWEsR0FBbkIsTUFBTSxhQUFjLFNBQVEscUJBQStCO0lBQ2hFLFlBQVksVUFBa0Isa0NBQXNCLENBQUMsSUFBSTtRQUN2RCxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7T0FjRztJQUNILFNBQVMsQ0FDUCxLQUF1QixFQUN2QixPQUE2QjtRQUU3QixJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFBRSxPQUFPO1FBRTNFLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUN4QyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUs7WUFDZixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEIsSUFBSSxHQUFRLEVBQ1YsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNqQixLQUNFLElBQUksQ0FBQyxHQUFHLENBQUMsRUFDVCxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQ3RELENBQUMsRUFBRSxFQUNILENBQUM7WUFDRCxHQUFHLEdBQUksS0FBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLFFBQVEsT0FBTyxHQUFHLEVBQUUsQ0FBQztnQkFDbkIsS0FBSyxRQUFRLENBQUM7Z0JBQ2QsS0FBSyxVQUFVO29CQUNiLE9BQU8sR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFFLEdBQWMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBQzVELE1BQU07Z0JBQ1I7b0JBQ0UsT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO29CQUNwRSxNQUFNO1lBQ1YsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLE9BQU87WUFDWixDQUFDLENBQUMsU0FBUztZQUNYLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM5RCxDQUFDO0NBQ0YsQ0FBQTtBQXBEWSxzQ0FBYTt3QkFBYixhQUFhO0lBRHpCLElBQUEsc0JBQVMsRUFBQywwQkFBYyxDQUFDLElBQUksQ0FBQzs7R0FDbEIsYUFBYSxDQW9EekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0b3IgfSBmcm9tIFwiLi9WYWxpZGF0b3JcIjtcbmltcG9ydCB7IERFRkFVTFRfRVJST1JfTUVTU0FHRVMsIFZhbGlkYXRpb25LZXlzIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyB2YWxpZGF0b3IgfSBmcm9tIFwiLi9kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBMaXN0VmFsaWRhdG9yT3B0aW9ucyB9IGZyb20gXCIuLi90eXBlc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBWYWxpZGF0b3IgZm9yIGNoZWNraW5nIGlmIGVsZW1lbnRzIGluIGEgbGlzdCBvciBzZXQgbWF0Y2ggZXhwZWN0ZWQgdHlwZXNcbiAqIEBzdW1tYXJ5IFRoZSBMaXN0VmFsaWRhdG9yIHZhbGlkYXRlcyB0aGF0IGFsbCBlbGVtZW50cyBpbiBhbiBhcnJheSBvciBTZXQgbWF0Y2ggdGhlIGV4cGVjdGVkIHR5cGVzLlxuICogSXQgY2hlY2tzIGVhY2ggZWxlbWVudCBhZ2FpbnN0IGEgbGlzdCBvZiBhbGxvd2VkIGNsYXNzIHR5cGVzIGFuZCBlbnN1cmVzIHR5cGUgY29uc2lzdGVuY3kuXG4gKiBUaGlzIHZhbGlkYXRvciBpcyB0eXBpY2FsbHkgdXNlZCB3aXRoIHRoZSBAbGlzdCBkZWNvcmF0b3IuXG4gKiBcbiAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZV0gLSBDdXN0b20gZXJyb3IgbWVzc2FnZSB0byBkaXNwbGF5IHdoZW4gdmFsaWRhdGlvbiBmYWlscywgZGVmYXVsdHMgdG8ge0BsaW5rIERFRkFVTFRfRVJST1JfTUVTU0FHRVMjTElTVH1cbiAqIFxuICogQGNsYXNzIExpc3RWYWxpZGF0b3JcbiAqIEBleHRlbmRzIFZhbGlkYXRvclxuICogXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gQ3JlYXRlIGEgbGlzdCB2YWxpZGF0b3Igd2l0aCBkZWZhdWx0IGVycm9yIG1lc3NhZ2VcbiAqIGNvbnN0IGxpc3RWYWxpZGF0b3IgPSBuZXcgTGlzdFZhbGlkYXRvcigpO1xuICogXG4gKiAvLyBDcmVhdGUgYSBsaXN0IHZhbGlkYXRvciB3aXRoIGN1c3RvbSBlcnJvciBtZXNzYWdlXG4gKiBjb25zdCBjdXN0b21MaXN0VmFsaWRhdG9yID0gbmV3IExpc3RWYWxpZGF0b3IoXCJBbGwgaXRlbXMgbXVzdCBiZSBvZiB0aGUgc3BlY2lmaWVkIHR5cGVcIik7XG4gKiBcbiAqIC8vIFZhbGlkYXRlIGEgbGlzdFxuICogY29uc3Qgb3B0aW9ucyA9IHsgY2xheno6IFtcIlN0cmluZ1wiLCBcIk51bWJlclwiXSB9O1xuICogY29uc3QgcmVzdWx0ID0gbGlzdFZhbGlkYXRvci5oYXNFcnJvcnMoW1widGVzdFwiLCAxMjNdLCBvcHRpb25zKTsgLy8gdW5kZWZpbmVkICh2YWxpZClcbiAqIGNvbnN0IGludmFsaWRSZXN1bHQgPSBsaXN0VmFsaWRhdG9yLmhhc0Vycm9ycyhbbmV3IERhdGUoKV0sIG9wdGlvbnMpOyAvLyBSZXR1cm5zIGVycm9yIG1lc3NhZ2UgKGludmFsaWQpXG4gKiBgYGBcbiAqIFxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDIGFzIENsaWVudFxuICogICBwYXJ0aWNpcGFudCBWIGFzIExpc3RWYWxpZGF0b3JcbiAqICAgXG4gKiAgIEMtPj5WOiBuZXcgTGlzdFZhbGlkYXRvcihtZXNzYWdlKVxuICogICBDLT4+VjogaGFzRXJyb3JzKHZhbHVlLCBvcHRpb25zKVxuICogICBhbHQgdmFsdWUgaXMgZW1wdHlcbiAqICAgICBWLS0+PkM6IHVuZGVmaW5lZCAodmFsaWQpXG4gKiAgIGVsc2UgdmFsdWUgaGFzIGVsZW1lbnRzXG4gKiAgICAgVi0+PlY6IENoZWNrIGVhY2ggZWxlbWVudCdzIHR5cGVcbiAqICAgICBhbHQgQWxsIGVsZW1lbnRzIG1hdGNoIGFsbG93ZWQgdHlwZXNcbiAqICAgICAgIFYtLT4+QzogdW5kZWZpbmVkICh2YWxpZClcbiAqICAgICBlbHNlIFNvbWUgZWxlbWVudHMgZG9uJ3QgbWF0Y2hcbiAqICAgICAgIFYtLT4+QzogRXJyb3IgbWVzc2FnZVxuICogICAgIGVuZFxuICogICBlbmRcbiAqIFxuICogQGNhdGVnb3J5IFZhbGlkYXRvcnNcbiAqL1xuQHZhbGlkYXRvcihWYWxpZGF0aW9uS2V5cy5MSVNUKVxuZXhwb3J0IGNsYXNzIExpc3RWYWxpZGF0b3IgZXh0ZW5kcyBWYWxpZGF0b3I8TGlzdFZhbGlkYXRvck9wdGlvbnM+IHtcbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nID0gREVGQVVMVF9FUlJPUl9NRVNTQUdFUy5MSVNUKSB7XG4gICAgc3VwZXIobWVzc2FnZSwgQXJyYXkubmFtZSwgU2V0Lm5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDaGVja3MgaWYgYWxsIGVsZW1lbnRzIGluIGEgbGlzdCBvciBzZXQgbWF0Y2ggdGhlIGV4cGVjdGVkIHR5cGVzXG4gICAqIEBzdW1tYXJ5IFZhbGlkYXRlcyB0aGF0IGVhY2ggZWxlbWVudCBpbiB0aGUgcHJvdmlkZWQgYXJyYXkgb3IgU2V0IG1hdGNoZXMgb25lIG9mIHRoZSBcbiAgICogY2xhc3MgdHlwZXMgc3BlY2lmaWVkIGluIHRoZSBvcHRpb25zLiBGb3Igb2JqZWN0IHR5cGVzLCBpdCBjaGVja3MgdGhlIGNvbnN0cnVjdG9yIG5hbWUsXG4gICAqIGFuZCBmb3IgcHJpbWl0aXZlIHR5cGVzLCBpdCBjb21wYXJlcyBhZ2FpbnN0IHRoZSBsb3dlcmNhc2UgdHlwZSBuYW1lLlxuICAgKlxuICAgKiBAcGFyYW0ge2FueVtdIHwgU2V0PGFueT59IHZhbHVlIC0gVGhlIGFycmF5IG9yIFNldCB0byB2YWxpZGF0ZVxuICAgKiBAcGFyYW0ge0xpc3RWYWxpZGF0b3JPcHRpb25zfSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zIGNvbnRhaW5pbmcgdGhlIGFsbG93ZWQgY2xhc3MgdHlwZXNcbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nIHwgdW5kZWZpbmVkfSBFcnJvciBtZXNzYWdlIGlmIHZhbGlkYXRpb24gZmFpbHMsIHVuZGVmaW5lZCBpZiB2YWxpZGF0aW9uIHBhc3Nlc1xuICAgKlxuICAgKiBAb3ZlcnJpZGVcbiAgICpcbiAgICogQHNlZSBWYWxpZGF0b3IjaGFzRXJyb3JzXG4gICAqL1xuICBoYXNFcnJvcnMoXG4gICAgdmFsdWU6IGFueVtdIHwgU2V0PGFueT4sXG4gICAgb3B0aW9uczogTGlzdFZhbGlkYXRvck9wdGlvbnNcbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXZhbHVlIHx8IChBcnJheS5pc0FycmF5KHZhbHVlKSA/ICF2YWx1ZS5sZW5ndGggOiAhdmFsdWUuc2l6ZSkpIHJldHVybjtcblxuICAgIGNvbnN0IGNsYXp6ID0gQXJyYXkuaXNBcnJheShvcHRpb25zLmNsYXp6KVxuICAgICAgPyBvcHRpb25zLmNsYXp6XG4gICAgICA6IFtvcHRpb25zLmNsYXp6XTtcbiAgICBsZXQgdmFsOiBhbnksXG4gICAgICBpc1ZhbGlkID0gdHJ1ZTtcbiAgICBmb3IgKFxuICAgICAgbGV0IGkgPSAwO1xuICAgICAgaSA8IChBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlLmxlbmd0aCA6IHZhbHVlLnNpemUpO1xuICAgICAgaSsrXG4gICAgKSB7XG4gICAgICB2YWwgPSAodmFsdWUgYXMgYW55KVtpXTtcbiAgICAgIHN3aXRjaCAodHlwZW9mIHZhbCkge1xuICAgICAgICBjYXNlIFwib2JqZWN0XCI6XG4gICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgIGlzVmFsaWQgPSBjbGF6ei5pbmNsdWRlcygodmFsIGFzIG9iamVjdCkuY29uc3RydWN0b3I/Lm5hbWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGlzVmFsaWQgPSBjbGF6ei5zb21lKChjOiBzdHJpbmcpID0+IHR5cGVvZiB2YWwgPT09IGMudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGlzVmFsaWRcbiAgICAgID8gdW5kZWZpbmVkXG4gICAgICA6IHRoaXMuZ2V0TWVzc2FnZShvcHRpb25zLm1lc3NhZ2UgfHwgdGhpcy5tZXNzYWdlLCBjbGF6eik7XG4gIH1cbn1cbiJdfQ==
|