@decaf-ts/decorator-validation 1.6.3 → 1.6.4
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 +1016 -1164
- package/dist/decorator-validation.esm.cjs +971 -1134
- package/lib/constants/index.cjs +18 -0
- package/lib/constants/index.d.ts +1 -0
- package/lib/constants/validation.cjs +14 -0
- package/lib/constants/validation.d.ts +10 -0
- package/lib/esm/constants/index.d.ts +1 -0
- package/lib/esm/constants/index.js +2 -0
- package/lib/esm/constants/validation.d.ts +10 -0
- package/lib/esm/constants/validation.js +11 -0
- package/lib/esm/index.d.ts +37 -5
- package/lib/esm/index.js +38 -6
- package/lib/esm/model/Model.d.ts +29 -100
- package/lib/esm/model/Model.js +37 -104
- 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 +4 -4
- package/lib/esm/model/decorators.js +5 -6
- package/lib/esm/model/types.d.ts +11 -30
- package/lib/esm/model/types.js +1 -1
- package/lib/esm/model/validation.d.ts +2 -2
- package/lib/esm/model/validation.js +18 -7
- package/lib/esm/utils/constants.d.ts +9 -27
- package/lib/esm/utils/constants.js +10 -28
- package/lib/esm/utils/dates.d.ts +16 -26
- package/lib/esm/utils/dates.js +17 -27
- package/lib/esm/utils/decorators.d.ts +0 -41
- package/lib/esm/utils/decorators.js +1 -42
- package/lib/esm/utils/hashing.d.ts +6 -50
- package/lib/esm/utils/hashing.js +5 -49
- package/lib/esm/utils/index.d.ts +0 -1
- package/lib/esm/utils/index.js +1 -2
- package/lib/esm/utils/registry.d.ts +2 -2
- package/lib/esm/utils/registry.js +1 -1
- package/lib/esm/utils/serialization.d.ts +1 -1
- package/lib/esm/utils/serialization.js +2 -2
- package/lib/esm/utils/strings.d.ts +4 -4
- package/lib/esm/utils/strings.js +5 -5
- package/lib/esm/utils/types.d.ts +16 -123
- package/lib/esm/utils/types.js +1 -1
- package/lib/esm/validation/Validators/DateValidator.d.ts +8 -40
- package/lib/esm/validation/Validators/DateValidator.js +9 -41
- package/lib/esm/validation/Validators/DiffValidator.d.ts +27 -0
- package/lib/esm/validation/Validators/DiffValidator.js +58 -0
- package/lib/esm/validation/Validators/EmailValidator.d.ts +7 -39
- package/lib/esm/validation/Validators/EmailValidator.js +8 -40
- package/lib/esm/validation/Validators/EqualsValidator.d.ts +27 -0
- package/lib/esm/validation/Validators/EqualsValidator.js +63 -0
- package/lib/esm/validation/Validators/GreaterThanOrEqualValidator.d.ts +27 -0
- package/lib/esm/validation/Validators/GreaterThanOrEqualValidator.js +65 -0
- package/lib/esm/validation/Validators/GreaterThanValidator.d.ts +27 -0
- package/lib/esm/validation/Validators/GreaterThanValidator.js +62 -0
- package/lib/esm/validation/Validators/LessThanOrEqualValidator.d.ts +27 -0
- package/lib/esm/validation/Validators/LessThanOrEqualValidator.js +65 -0
- package/lib/esm/validation/Validators/LessThanValidator.d.ts +27 -0
- package/lib/esm/validation/Validators/LessThanValidator.js +62 -0
- package/lib/esm/validation/Validators/ListValidator.d.ts +6 -44
- package/lib/esm/validation/Validators/ListValidator.js +7 -45
- package/lib/esm/validation/Validators/MaxValidator.d.ts +6 -52
- package/lib/esm/validation/Validators/MaxValidator.js +7 -53
- package/lib/esm/validation/Validators/MinValidator.d.ts +6 -52
- package/lib/esm/validation/Validators/MinValidator.js +7 -53
- package/lib/esm/validation/Validators/PatternValidator.d.ts +9 -75
- package/lib/esm/validation/Validators/PatternValidator.js +10 -76
- package/lib/esm/validation/Validators/RequiredValidator.d.ts +6 -52
- package/lib/esm/validation/Validators/RequiredValidator.js +7 -53
- package/lib/esm/validation/Validators/TypeValidator.d.ts +6 -60
- package/lib/esm/validation/Validators/TypeValidator.js +7 -69
- package/lib/esm/validation/Validators/URLValidator.d.ts +7 -41
- package/lib/esm/validation/Validators/URLValidator.js +8 -42
- package/lib/esm/validation/Validators/Validator.d.ts +17 -77
- package/lib/esm/validation/Validators/Validator.js +11 -68
- package/lib/esm/validation/Validators/ValidatorRegistry.d.ts +7 -1
- package/lib/esm/validation/Validators/ValidatorRegistry.js +11 -4
- package/lib/esm/validation/Validators/constants.d.ts +41 -0
- package/lib/esm/validation/Validators/constants.js +43 -1
- package/lib/esm/validation/Validators/index.d.ts +7 -0
- package/lib/esm/validation/Validators/index.js +8 -1
- package/lib/esm/validation/Validators/utils.d.ts +52 -0
- package/lib/esm/validation/Validators/utils.js +174 -0
- package/lib/esm/validation/decorators.d.ts +124 -50
- package/lib/esm/validation/decorators.js +173 -102
- package/lib/esm/validation/types.d.ts +31 -146
- package/lib/esm/validation/types.js +1 -1
- package/lib/index.cjs +39 -7
- package/lib/index.d.ts +37 -5
- package/lib/model/Model.cjs +39 -104
- package/lib/model/Model.d.ts +29 -100
- 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 +5 -6
- package/lib/model/decorators.d.ts +4 -4
- package/lib/model/types.cjs +1 -1
- package/lib/model/types.d.ts +11 -30
- package/lib/model/validation.cjs +25 -14
- package/lib/model/validation.d.ts +2 -2
- package/lib/utils/constants.cjs +11 -29
- package/lib/utils/constants.d.ts +9 -27
- package/lib/utils/dates.cjs +17 -27
- package/lib/utils/dates.d.ts +16 -26
- package/lib/utils/decorators.cjs +1 -42
- package/lib/utils/decorators.d.ts +0 -41
- package/lib/utils/hashing.cjs +5 -49
- package/lib/utils/hashing.d.ts +6 -50
- package/lib/utils/index.cjs +1 -2
- package/lib/utils/index.d.ts +0 -1
- package/lib/utils/registry.cjs +1 -1
- package/lib/utils/registry.d.ts +2 -2
- package/lib/utils/serialization.cjs +2 -2
- 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 +16 -123
- package/lib/validation/Validators/DateValidator.cjs +9 -41
- package/lib/validation/Validators/DateValidator.d.ts +8 -40
- package/lib/validation/Validators/DiffValidator.cjs +61 -0
- package/lib/validation/Validators/DiffValidator.d.ts +27 -0
- package/lib/validation/Validators/EmailValidator.cjs +8 -40
- package/lib/validation/Validators/EmailValidator.d.ts +7 -39
- package/lib/validation/Validators/EqualsValidator.cjs +66 -0
- package/lib/validation/Validators/EqualsValidator.d.ts +27 -0
- package/lib/validation/Validators/GreaterThanOrEqualValidator.cjs +68 -0
- package/lib/validation/Validators/GreaterThanOrEqualValidator.d.ts +27 -0
- package/lib/validation/Validators/GreaterThanValidator.cjs +65 -0
- package/lib/validation/Validators/GreaterThanValidator.d.ts +27 -0
- package/lib/validation/Validators/LessThanOrEqualValidator.cjs +68 -0
- package/lib/validation/Validators/LessThanOrEqualValidator.d.ts +27 -0
- package/lib/validation/Validators/LessThanValidator.cjs +65 -0
- package/lib/validation/Validators/LessThanValidator.d.ts +27 -0
- package/lib/validation/Validators/ListValidator.cjs +7 -45
- package/lib/validation/Validators/ListValidator.d.ts +6 -44
- package/lib/validation/Validators/MaxValidator.cjs +7 -53
- package/lib/validation/Validators/MaxValidator.d.ts +6 -52
- package/lib/validation/Validators/MinValidator.cjs +7 -53
- package/lib/validation/Validators/MinValidator.d.ts +6 -52
- package/lib/validation/Validators/PatternValidator.cjs +10 -76
- package/lib/validation/Validators/PatternValidator.d.ts +9 -75
- package/lib/validation/Validators/RequiredValidator.cjs +7 -53
- package/lib/validation/Validators/RequiredValidator.d.ts +6 -52
- package/lib/validation/Validators/TypeValidator.cjs +7 -69
- package/lib/validation/Validators/TypeValidator.d.ts +6 -60
- package/lib/validation/Validators/URLValidator.cjs +8 -42
- package/lib/validation/Validators/URLValidator.d.ts +7 -41
- package/lib/validation/Validators/Validator.cjs +11 -68
- package/lib/validation/Validators/Validator.d.ts +17 -77
- package/lib/validation/Validators/ValidatorRegistry.cjs +12 -4
- package/lib/validation/Validators/ValidatorRegistry.d.ts +7 -1
- package/lib/validation/Validators/constants.cjs +44 -2
- package/lib/validation/Validators/constants.d.ts +41 -0
- package/lib/validation/Validators/index.cjs +8 -1
- package/lib/validation/Validators/index.d.ts +7 -0
- package/lib/validation/Validators/utils.cjs +180 -0
- package/lib/validation/Validators/utils.d.ts +52 -0
- package/lib/validation/decorators.cjs +179 -102
- package/lib/validation/decorators.d.ts +124 -50
- package/lib/validation/types.cjs +1 -1
- package/lib/validation/types.d.ts +31 -146
- package/package.json +1 -1
- package/lib/esm/utils/Decoration.d.ts +0 -123
- package/lib/esm/utils/Decoration.js +0 -188
- package/lib/utils/Decoration.cjs +0 -192
- package/lib/utils/Decoration.d.ts +0 -123
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Validator } from "./Validator";
|
|
2
|
+
import type { ComparisonValidatorOptions } from "../types";
|
|
3
|
+
/**
|
|
4
|
+
* @summary Less Than Validator
|
|
5
|
+
*
|
|
6
|
+
* @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#LESS_THAN}
|
|
7
|
+
*
|
|
8
|
+
* @class LessThanValidator
|
|
9
|
+
* @extends Validator
|
|
10
|
+
*
|
|
11
|
+
* @category Validators
|
|
12
|
+
*/
|
|
13
|
+
export declare class LessThanValidator extends Validator<ComparisonValidatorOptions> {
|
|
14
|
+
constructor(message?: string);
|
|
15
|
+
/**
|
|
16
|
+
* @summary Validates a model
|
|
17
|
+
*
|
|
18
|
+
* @param {string} value
|
|
19
|
+
* @param {ComparisonValidatorOptions} options
|
|
20
|
+
*
|
|
21
|
+
* @return {string | undefined}
|
|
22
|
+
*
|
|
23
|
+
* @override
|
|
24
|
+
* @see Validator#hasErrors
|
|
25
|
+
*/
|
|
26
|
+
hasErrors(value: any, options: ComparisonValidatorOptions, instance: any): string | undefined;
|
|
27
|
+
}
|
|
@@ -14,48 +14,13 @@ 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
|
-
* @
|
|
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.
|
|
17
|
+
* @summary List Validator
|
|
21
18
|
*
|
|
22
|
-
* @param {string} [message]
|
|
19
|
+
* @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#LIST}
|
|
23
20
|
*
|
|
24
21
|
* @class ListValidator
|
|
25
22
|
* @extends Validator
|
|
26
23
|
*
|
|
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
|
-
*
|
|
59
24
|
* @category Validators
|
|
60
25
|
*/
|
|
61
26
|
let ListValidator = class ListValidator extends Validator_1.Validator {
|
|
@@ -63,15 +28,12 @@ let ListValidator = class ListValidator extends Validator_1.Validator {
|
|
|
63
28
|
super(message, Array.name, Set.name);
|
|
64
29
|
}
|
|
65
30
|
/**
|
|
66
|
-
* @
|
|
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.
|
|
31
|
+
* @summary Validates a model
|
|
70
32
|
*
|
|
71
|
-
* @param {any[] | Set<any>} value
|
|
72
|
-
* @param {ListValidatorOptions} options
|
|
33
|
+
* @param {any[] | Set<any>} value
|
|
34
|
+
* @param {ListValidatorOptions} options
|
|
73
35
|
*
|
|
74
|
-
* @return {string | undefined}
|
|
36
|
+
* @return {string | undefined}
|
|
75
37
|
*
|
|
76
38
|
* @override
|
|
77
39
|
*
|
|
@@ -106,4 +68,4 @@ exports.ListValidator = ListValidator = __decorate([
|
|
|
106
68
|
(0, decorators_1.validator)(constants_1.ValidationKeys.LIST),
|
|
107
69
|
__metadata("design:paramtypes", [String])
|
|
108
70
|
], ListValidator);
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGlzdFZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92YWxpZGF0aW9uL1ZhbGlkYXRvcnMvTGlzdFZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBd0M7QUFDeEMsMkNBQXFFO0FBQ3JFLDZDQUF5QztBQUd6Qzs7Ozs7Ozs7O0dBU0c7QUFFSSxJQUFNLGFBQWEsR0FBbkIsTUFBTSxhQUFjLFNBQVEscUJBQStCO0lBQ2hFLFlBQVksVUFBa0Isa0NBQXNCLENBQUMsSUFBSTtRQUN2RCxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNILFNBQVMsQ0FDUCxLQUF1QixFQUN2QixPQUE2QjtRQUU3QixJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFBRSxPQUFPO1FBRTNFLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUN4QyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUs7WUFDZixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEIsSUFBSSxHQUFRLEVBQ1YsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNqQixLQUNFLElBQUksQ0FBQyxHQUFHLENBQUMsRUFDVCxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQ3RELENBQUMsRUFBRSxFQUNILENBQUM7WUFDRCxHQUFHLEdBQUksS0FBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLFFBQVEsT0FBTyxHQUFHLEVBQUUsQ0FBQztnQkFDbkIsS0FBSyxRQUFRLENBQUM7Z0JBQ2QsS0FBSyxVQUFVO29CQUNiLE9BQU8sR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFFLEdBQWMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBQzVELE1BQU07Z0JBQ1I7b0JBQ0UsT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO29CQUNwRSxNQUFNO1lBQ1YsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLE9BQU87WUFDWixDQUFDLENBQUMsU0FBUztZQUNYLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM5RCxDQUFDO0NBQ0YsQ0FBQTtBQWpEWSxzQ0FBYTt3QkFBYixhQUFhO0lBRHpCLElBQUEsc0JBQVMsRUFBQywwQkFBYyxDQUFDLElBQUksQ0FBQzs7R0FDbEIsYUFBYSxDQWlEekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0b3IgfSBmcm9tIFwiLi9WYWxpZGF0b3JcIjtcbmltcG9ydCB7IERFRkFVTFRfRVJST1JfTUVTU0FHRVMsIFZhbGlkYXRpb25LZXlzIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyB2YWxpZGF0b3IgfSBmcm9tIFwiLi9kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBMaXN0VmFsaWRhdG9yT3B0aW9ucyB9IGZyb20gXCIuLi90eXBlc1wiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IExpc3QgVmFsaWRhdG9yXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IFttZXNzYWdlXSBkZWZhdWx0cyB0byB7QGxpbmsgREVGQVVMVF9FUlJPUl9NRVNTQUdFUyNMSVNUfVxuICpcbiAqIEBjbGFzcyBMaXN0VmFsaWRhdG9yXG4gKiBAZXh0ZW5kcyBWYWxpZGF0b3JcbiAqXG4gKiBAY2F0ZWdvcnkgVmFsaWRhdG9yc1xuICovXG5AdmFsaWRhdG9yKFZhbGlkYXRpb25LZXlzLkxJU1QpXG5leHBvcnQgY2xhc3MgTGlzdFZhbGlkYXRvciBleHRlbmRzIFZhbGlkYXRvcjxMaXN0VmFsaWRhdG9yT3B0aW9ucz4ge1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcgPSBERUZBVUxUX0VSUk9SX01FU1NBR0VTLkxJU1QpIHtcbiAgICBzdXBlcihtZXNzYWdlLCBBcnJheS5uYW1lLCBTZXQubmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgVmFsaWRhdGVzIGEgbW9kZWxcbiAgICpcbiAgICogQHBhcmFtIHthbnlbXSB8IFNldDxhbnk+fSB2YWx1ZVxuICAgKiBAcGFyYW0ge0xpc3RWYWxpZGF0b3JPcHRpb25zfSBvcHRpb25zXG4gICAqXG4gICAqIEByZXR1cm4ge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICpcbiAgICogQG92ZXJyaWRlXG4gICAqXG4gICAqIEBzZWUgVmFsaWRhdG9yI2hhc0Vycm9yc1xuICAgKi9cbiAgaGFzRXJyb3JzKFxuICAgIHZhbHVlOiBhbnlbXSB8IFNldDxhbnk+LFxuICAgIG9wdGlvbnM6IExpc3RWYWxpZGF0b3JPcHRpb25zXG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF2YWx1ZSB8fCAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyAhdmFsdWUubGVuZ3RoIDogIXZhbHVlLnNpemUpKSByZXR1cm47XG5cbiAgICBjb25zdCBjbGF6eiA9IEFycmF5LmlzQXJyYXkob3B0aW9ucy5jbGF6eilcbiAgICAgID8gb3B0aW9ucy5jbGF6elxuICAgICAgOiBbb3B0aW9ucy5jbGF6el07XG4gICAgbGV0IHZhbDogYW55LFxuICAgICAgaXNWYWxpZCA9IHRydWU7XG4gICAgZm9yIChcbiAgICAgIGxldCBpID0gMDtcbiAgICAgIGkgPCAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZS5sZW5ndGggOiB2YWx1ZS5zaXplKTtcbiAgICAgIGkrK1xuICAgICkge1xuICAgICAgdmFsID0gKHZhbHVlIGFzIGFueSlbaV07XG4gICAgICBzd2l0Y2ggKHR5cGVvZiB2YWwpIHtcbiAgICAgICAgY2FzZSBcIm9iamVjdFwiOlxuICAgICAgICBjYXNlIFwiZnVuY3Rpb25cIjpcbiAgICAgICAgICBpc1ZhbGlkID0gY2xhenouaW5jbHVkZXMoKHZhbCBhcyBvYmplY3QpLmNvbnN0cnVjdG9yPy5uYW1lKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBpc1ZhbGlkID0gY2xhenouc29tZSgoYzogc3RyaW5nKSA9PiB0eXBlb2YgdmFsID09PSBjLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBpc1ZhbGlkXG4gICAgICA/IHVuZGVmaW5lZFxuICAgICAgOiB0aGlzLmdldE1lc3NhZ2Uob3B0aW9ucy5tZXNzYWdlIHx8IHRoaXMubWVzc2FnZSwgY2xhenopO1xuICB9XG59XG4iXX0=
|
|
@@ -1,62 +1,24 @@
|
|
|
1
1
|
import { Validator } from "./Validator";
|
|
2
2
|
import { ListValidatorOptions } from "../types";
|
|
3
3
|
/**
|
|
4
|
-
* @
|
|
5
|
-
* @summary The ListValidator validates that all elements in an array or Set match the expected types.
|
|
6
|
-
* It checks each element against a list of allowed class types and ensures type consistency.
|
|
7
|
-
* This validator is typically used with the @list decorator.
|
|
4
|
+
* @summary List Validator
|
|
8
5
|
*
|
|
9
|
-
* @param {string} [message]
|
|
6
|
+
* @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#LIST}
|
|
10
7
|
*
|
|
11
8
|
* @class ListValidator
|
|
12
9
|
* @extends Validator
|
|
13
10
|
*
|
|
14
|
-
* @example
|
|
15
|
-
* ```typescript
|
|
16
|
-
* // Create a list validator with default error message
|
|
17
|
-
* const listValidator = new ListValidator();
|
|
18
|
-
*
|
|
19
|
-
* // Create a list validator with custom error message
|
|
20
|
-
* const customListValidator = new ListValidator("All items must be of the specified type");
|
|
21
|
-
*
|
|
22
|
-
* // Validate a list
|
|
23
|
-
* const options = { clazz: ["String", "Number"] };
|
|
24
|
-
* const result = listValidator.hasErrors(["test", 123], options); // undefined (valid)
|
|
25
|
-
* const invalidResult = listValidator.hasErrors([new Date()], options); // Returns error message (invalid)
|
|
26
|
-
* ```
|
|
27
|
-
*
|
|
28
|
-
* @mermaid
|
|
29
|
-
* sequenceDiagram
|
|
30
|
-
* participant C as Client
|
|
31
|
-
* participant V as ListValidator
|
|
32
|
-
*
|
|
33
|
-
* C->>V: new ListValidator(message)
|
|
34
|
-
* C->>V: hasErrors(value, options)
|
|
35
|
-
* alt value is empty
|
|
36
|
-
* V-->>C: undefined (valid)
|
|
37
|
-
* else value has elements
|
|
38
|
-
* V->>V: Check each element's type
|
|
39
|
-
* alt All elements match allowed types
|
|
40
|
-
* V-->>C: undefined (valid)
|
|
41
|
-
* else Some elements don't match
|
|
42
|
-
* V-->>C: Error message
|
|
43
|
-
* end
|
|
44
|
-
* end
|
|
45
|
-
*
|
|
46
11
|
* @category Validators
|
|
47
12
|
*/
|
|
48
13
|
export declare class ListValidator extends Validator<ListValidatorOptions> {
|
|
49
14
|
constructor(message?: string);
|
|
50
15
|
/**
|
|
51
|
-
* @
|
|
52
|
-
* @summary Validates that each element in the provided array or Set matches one of the
|
|
53
|
-
* class types specified in the options. For object types, it checks the constructor name,
|
|
54
|
-
* and for primitive types, it compares against the lowercase type name.
|
|
16
|
+
* @summary Validates a model
|
|
55
17
|
*
|
|
56
|
-
* @param {any[] | Set<any>} value
|
|
57
|
-
* @param {ListValidatorOptions} options
|
|
18
|
+
* @param {any[] | Set<any>} value
|
|
19
|
+
* @param {ListValidatorOptions} options
|
|
58
20
|
*
|
|
59
|
-
* @return {string | undefined}
|
|
21
|
+
* @return {string | undefined}
|
|
60
22
|
*
|
|
61
23
|
* @override
|
|
62
24
|
*
|
|
@@ -14,55 +14,13 @@ 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
|
-
* @
|
|
18
|
-
* @summary The MaxValidator checks if a numeric value, date, or string is less than or equal to
|
|
19
|
-
* a specified maximum value. It supports comparing numbers directly, dates chronologically,
|
|
20
|
-
* and strings lexicographically. This validator is typically used with the @max decorator.
|
|
17
|
+
* @summary Max Validator
|
|
21
18
|
*
|
|
22
|
-
* @param {string} [message]
|
|
19
|
+
* @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#MAX}
|
|
23
20
|
*
|
|
24
21
|
* @class MaxValidator
|
|
25
22
|
* @extends Validator
|
|
26
23
|
*
|
|
27
|
-
* @example
|
|
28
|
-
* ```typescript
|
|
29
|
-
* // Create a max validator with default error message
|
|
30
|
-
* const maxValidator = new MaxValidator();
|
|
31
|
-
*
|
|
32
|
-
* // Create a max validator with custom error message
|
|
33
|
-
* const customMaxValidator = new MaxValidator("Value must not exceed {0}");
|
|
34
|
-
*
|
|
35
|
-
* // Validate a number
|
|
36
|
-
* const numOptions = { max: 100, message: "Number too large" };
|
|
37
|
-
* const numResult = maxValidator.hasErrors(50, numOptions); // undefined (valid)
|
|
38
|
-
* const invalidNumResult = maxValidator.hasErrors(150, numOptions); // Returns error message (invalid)
|
|
39
|
-
*
|
|
40
|
-
* // Validate a date
|
|
41
|
-
* const dateOptions = { max: new Date(2023, 11, 31) };
|
|
42
|
-
* const dateResult = maxValidator.hasErrors(new Date(2023, 5, 15), dateOptions); // undefined (valid)
|
|
43
|
-
* ```
|
|
44
|
-
*
|
|
45
|
-
* @mermaid
|
|
46
|
-
* sequenceDiagram
|
|
47
|
-
* participant C as Client
|
|
48
|
-
* participant V as MaxValidator
|
|
49
|
-
*
|
|
50
|
-
* C->>V: new MaxValidator(message)
|
|
51
|
-
* C->>V: hasErrors(value, options)
|
|
52
|
-
* alt value is undefined
|
|
53
|
-
* V-->>C: undefined (valid)
|
|
54
|
-
* else value is Date and max is not Date
|
|
55
|
-
* V->>V: Convert max to Date
|
|
56
|
-
* alt conversion fails
|
|
57
|
-
* V-->>C: Error: Invalid Max param
|
|
58
|
-
* end
|
|
59
|
-
* end
|
|
60
|
-
* alt value > max
|
|
61
|
-
* V-->>C: Error message
|
|
62
|
-
* else value <= max
|
|
63
|
-
* V-->>C: undefined (valid)
|
|
64
|
-
* end
|
|
65
|
-
*
|
|
66
24
|
* @category Validators
|
|
67
25
|
*/
|
|
68
26
|
let MaxValidator = class MaxValidator extends Validator_1.Validator {
|
|
@@ -70,16 +28,12 @@ let MaxValidator = class MaxValidator extends Validator_1.Validator {
|
|
|
70
28
|
super(message, "number", "Date", "string");
|
|
71
29
|
}
|
|
72
30
|
/**
|
|
73
|
-
* @
|
|
74
|
-
* @summary Validates that the provided value does not exceed the maximum value
|
|
75
|
-
* specified in the options. For dates, it performs chronological comparison,
|
|
76
|
-
* converting string representations to Date objects if necessary. For numbers
|
|
77
|
-
* and strings, it performs direct comparison.
|
|
31
|
+
* @summary Validates a Model
|
|
78
32
|
*
|
|
79
|
-
* @param {
|
|
80
|
-
* @param {MaxValidatorOptions} options
|
|
33
|
+
* @param {string} value
|
|
34
|
+
* @param {MaxValidatorOptions} options
|
|
81
35
|
*
|
|
82
|
-
* @return {string | undefined}
|
|
36
|
+
* @return {string | undefined}
|
|
83
37
|
*
|
|
84
38
|
* @override
|
|
85
39
|
*
|
|
@@ -104,4 +58,4 @@ exports.MaxValidator = MaxValidator = __decorate([
|
|
|
104
58
|
(0, decorators_1.validator)(constants_1.ValidationKeys.MAX),
|
|
105
59
|
__metadata("design:paramtypes", [String])
|
|
106
60
|
], MaxValidator);
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWF4VmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3ZhbGlkYXRpb24vVmFsaWRhdG9ycy9NYXhWYWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQXdDO0FBQ3hDLDJDQUFxRTtBQUNyRSw2Q0FBeUM7QUFHekM7Ozs7Ozs7OztHQVNHO0FBRUksSUFBTSxZQUFZLEdBQWxCLE1BQU0sWUFBYSxTQUFRLHFCQUE4QjtJQUM5RCxZQUFZLFVBQWtCLGtDQUFzQixDQUFDLEdBQUc7UUFDdEQsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNJLFNBQVMsQ0FDZCxLQUE2QixFQUM3QixPQUE0QjtRQUU1QixJQUFJLE9BQU8sS0FBSyxLQUFLLFdBQVc7WUFBRSxPQUFPO1FBRXpDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDdEIsSUFBSSxLQUFLLFlBQVksSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLFlBQVksSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNwRCxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEIsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFFRCxPQUFPLEtBQUssR0FBRyxHQUFHO1lBQ2hCLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUM7WUFDdkQsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNoQixDQUFDO0NBQ0YsQ0FBQTtBQWxDWSxvQ0FBWTt1QkFBWixZQUFZO0lBRHhCLElBQUEsc0JBQVMsRUFBQywwQkFBYyxDQUFDLEdBQUcsQ0FBQzs7R0FDakIsWUFBWSxDQWtDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0b3IgfSBmcm9tIFwiLi9WYWxpZGF0b3JcIjtcbmltcG9ydCB7IERFRkFVTFRfRVJST1JfTUVTU0FHRVMsIFZhbGlkYXRpb25LZXlzIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyB2YWxpZGF0b3IgfSBmcm9tIFwiLi9kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBNYXhWYWxpZGF0b3JPcHRpb25zIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgTWF4IFZhbGlkYXRvclxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZV0gZGVmYXVsdHMgdG8ge0BsaW5rIERFRkFVTFRfRVJST1JfTUVTU0FHRVMjTUFYfVxuICpcbiAqIEBjbGFzcyBNYXhWYWxpZGF0b3JcbiAqIEBleHRlbmRzIFZhbGlkYXRvclxuICpcbiAqIEBjYXRlZ29yeSBWYWxpZGF0b3JzXG4gKi9cbkB2YWxpZGF0b3IoVmFsaWRhdGlvbktleXMuTUFYKVxuZXhwb3J0IGNsYXNzIE1heFZhbGlkYXRvciBleHRlbmRzIFZhbGlkYXRvcjxNYXhWYWxpZGF0b3JPcHRpb25zPiB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZyA9IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuTUFYKSB7XG4gICAgc3VwZXIobWVzc2FnZSwgXCJudW1iZXJcIiwgXCJEYXRlXCIsIFwic3RyaW5nXCIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFZhbGlkYXRlcyBhIE1vZGVsXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICAgKiBAcGFyYW0ge01heFZhbGlkYXRvck9wdGlvbnN9IG9wdGlvbnNcbiAgICpcbiAgICogQHJldHVybiB7c3RyaW5nIHwgdW5kZWZpbmVkfVxuICAgKlxuICAgKiBAb3ZlcnJpZGVcbiAgICpcbiAgICogQHNlZSBWYWxpZGF0b3IjaGFzRXJyb3JzXG4gICAqL1xuICBwdWJsaWMgaGFzRXJyb3JzKFxuICAgIHZhbHVlOiBudW1iZXIgfCBEYXRlIHwgc3RyaW5nLFxuICAgIG9wdGlvbnM6IE1heFZhbGlkYXRvck9wdGlvbnNcbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm47XG5cbiAgICBsZXQgeyBtYXggfSA9IG9wdGlvbnM7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSAmJiAhKG1heCBpbnN0YW5jZW9mIERhdGUpKSB7XG4gICAgICBtYXggPSBuZXcgRGF0ZShtYXgpO1xuICAgICAgaWYgKE51bWJlci5pc05hTihtYXguZ2V0RGF0ZSgpKSlcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBNYXggcGFyYW0gZGVmaW5lZFwiKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWUgPiBtYXhcbiAgICAgID8gdGhpcy5nZXRNZXNzYWdlKG9wdGlvbnMubWVzc2FnZSB8fCB0aGlzLm1lc3NhZ2UsIG1heClcbiAgICAgIDogdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
|
|
@@ -1,70 +1,24 @@
|
|
|
1
1
|
import { Validator } from "./Validator";
|
|
2
2
|
import { MaxValidatorOptions } from "../types";
|
|
3
3
|
/**
|
|
4
|
-
* @
|
|
5
|
-
* @summary The MaxValidator checks if a numeric value, date, or string is less than or equal to
|
|
6
|
-
* a specified maximum value. It supports comparing numbers directly, dates chronologically,
|
|
7
|
-
* and strings lexicographically. This validator is typically used with the @max decorator.
|
|
4
|
+
* @summary Max Validator
|
|
8
5
|
*
|
|
9
|
-
* @param {string} [message]
|
|
6
|
+
* @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#MAX}
|
|
10
7
|
*
|
|
11
8
|
* @class MaxValidator
|
|
12
9
|
* @extends Validator
|
|
13
10
|
*
|
|
14
|
-
* @example
|
|
15
|
-
* ```typescript
|
|
16
|
-
* // Create a max validator with default error message
|
|
17
|
-
* const maxValidator = new MaxValidator();
|
|
18
|
-
*
|
|
19
|
-
* // Create a max validator with custom error message
|
|
20
|
-
* const customMaxValidator = new MaxValidator("Value must not exceed {0}");
|
|
21
|
-
*
|
|
22
|
-
* // Validate a number
|
|
23
|
-
* const numOptions = { max: 100, message: "Number too large" };
|
|
24
|
-
* const numResult = maxValidator.hasErrors(50, numOptions); // undefined (valid)
|
|
25
|
-
* const invalidNumResult = maxValidator.hasErrors(150, numOptions); // Returns error message (invalid)
|
|
26
|
-
*
|
|
27
|
-
* // Validate a date
|
|
28
|
-
* const dateOptions = { max: new Date(2023, 11, 31) };
|
|
29
|
-
* const dateResult = maxValidator.hasErrors(new Date(2023, 5, 15), dateOptions); // undefined (valid)
|
|
30
|
-
* ```
|
|
31
|
-
*
|
|
32
|
-
* @mermaid
|
|
33
|
-
* sequenceDiagram
|
|
34
|
-
* participant C as Client
|
|
35
|
-
* participant V as MaxValidator
|
|
36
|
-
*
|
|
37
|
-
* C->>V: new MaxValidator(message)
|
|
38
|
-
* C->>V: hasErrors(value, options)
|
|
39
|
-
* alt value is undefined
|
|
40
|
-
* V-->>C: undefined (valid)
|
|
41
|
-
* else value is Date and max is not Date
|
|
42
|
-
* V->>V: Convert max to Date
|
|
43
|
-
* alt conversion fails
|
|
44
|
-
* V-->>C: Error: Invalid Max param
|
|
45
|
-
* end
|
|
46
|
-
* end
|
|
47
|
-
* alt value > max
|
|
48
|
-
* V-->>C: Error message
|
|
49
|
-
* else value <= max
|
|
50
|
-
* V-->>C: undefined (valid)
|
|
51
|
-
* end
|
|
52
|
-
*
|
|
53
11
|
* @category Validators
|
|
54
12
|
*/
|
|
55
13
|
export declare class MaxValidator extends Validator<MaxValidatorOptions> {
|
|
56
14
|
constructor(message?: string);
|
|
57
15
|
/**
|
|
58
|
-
* @
|
|
59
|
-
* @summary Validates that the provided value does not exceed the maximum value
|
|
60
|
-
* specified in the options. For dates, it performs chronological comparison,
|
|
61
|
-
* converting string representations to Date objects if necessary. For numbers
|
|
62
|
-
* and strings, it performs direct comparison.
|
|
16
|
+
* @summary Validates a Model
|
|
63
17
|
*
|
|
64
|
-
* @param {
|
|
65
|
-
* @param {MaxValidatorOptions} options
|
|
18
|
+
* @param {string} value
|
|
19
|
+
* @param {MaxValidatorOptions} options
|
|
66
20
|
*
|
|
67
|
-
* @return {string | undefined}
|
|
21
|
+
* @return {string | undefined}
|
|
68
22
|
*
|
|
69
23
|
* @override
|
|
70
24
|
*
|
|
@@ -14,55 +14,13 @@ 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
|
-
* @
|
|
18
|
-
* @summary The MinValidator checks if a numeric value, date, or string is greater than or equal to
|
|
19
|
-
* a specified minimum value. It supports comparing numbers directly, dates chronologically,
|
|
20
|
-
* and strings lexicographically. This validator is typically used with the @min decorator.
|
|
17
|
+
* @summary Min Validator
|
|
21
18
|
*
|
|
22
|
-
* @param {string} [message]
|
|
19
|
+
* @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#MIN}
|
|
23
20
|
*
|
|
24
21
|
* @class MinValidator
|
|
25
22
|
* @extends Validator
|
|
26
23
|
*
|
|
27
|
-
* @example
|
|
28
|
-
* ```typescript
|
|
29
|
-
* // Create a min validator with default error message
|
|
30
|
-
* const minValidator = new MinValidator();
|
|
31
|
-
*
|
|
32
|
-
* // Create a min validator with custom error message
|
|
33
|
-
* const customMinValidator = new MinValidator("Value must be at least {0}");
|
|
34
|
-
*
|
|
35
|
-
* // Validate a number
|
|
36
|
-
* const numOptions = { min: 10, message: "Number too small" };
|
|
37
|
-
* const numResult = minValidator.hasErrors(50, numOptions); // undefined (valid)
|
|
38
|
-
* const invalidNumResult = minValidator.hasErrors(5, numOptions); // Returns error message (invalid)
|
|
39
|
-
*
|
|
40
|
-
* // Validate a date
|
|
41
|
-
* const dateOptions = { min: new Date(2023, 0, 1) };
|
|
42
|
-
* const dateResult = minValidator.hasErrors(new Date(2023, 5, 15), dateOptions); // undefined (valid)
|
|
43
|
-
* ```
|
|
44
|
-
*
|
|
45
|
-
* @mermaid
|
|
46
|
-
* sequenceDiagram
|
|
47
|
-
* participant C as Client
|
|
48
|
-
* participant V as MinValidator
|
|
49
|
-
*
|
|
50
|
-
* C->>V: new MinValidator(message)
|
|
51
|
-
* C->>V: hasErrors(value, options)
|
|
52
|
-
* alt value is undefined
|
|
53
|
-
* V-->>C: undefined (valid)
|
|
54
|
-
* else value is Date and min is not Date
|
|
55
|
-
* V->>V: Convert min to Date
|
|
56
|
-
* alt conversion fails
|
|
57
|
-
* V-->>C: Error: Invalid Min param
|
|
58
|
-
* end
|
|
59
|
-
* end
|
|
60
|
-
* alt value < min
|
|
61
|
-
* V-->>C: Error message
|
|
62
|
-
* else value >= min
|
|
63
|
-
* V-->>C: undefined (valid)
|
|
64
|
-
* end
|
|
65
|
-
*
|
|
66
24
|
* @category Validators
|
|
67
25
|
*/
|
|
68
26
|
let MinValidator = class MinValidator extends Validator_1.Validator {
|
|
@@ -70,16 +28,12 @@ let MinValidator = class MinValidator extends Validator_1.Validator {
|
|
|
70
28
|
super(message, "number", "Date", "string");
|
|
71
29
|
}
|
|
72
30
|
/**
|
|
73
|
-
* @
|
|
74
|
-
* @summary Validates that the provided value is not less than the minimum value
|
|
75
|
-
* specified in the options. For dates, it performs chronological comparison,
|
|
76
|
-
* converting string representations to Date objects if necessary. For numbers
|
|
77
|
-
* and strings, it performs direct comparison.
|
|
31
|
+
* @summary Validates Model
|
|
78
32
|
*
|
|
79
|
-
* @param {
|
|
80
|
-
* @param {
|
|
33
|
+
* @param {string} value
|
|
34
|
+
* @param {MaxValidatorOptions} options
|
|
81
35
|
*
|
|
82
|
-
* @return {string | undefined}
|
|
36
|
+
* @return {string | undefined}
|
|
83
37
|
*
|
|
84
38
|
* @override
|
|
85
39
|
*
|
|
@@ -104,4 +58,4 @@ exports.MinValidator = MinValidator = __decorate([
|
|
|
104
58
|
(0, decorators_1.validator)(constants_1.ValidationKeys.MIN),
|
|
105
59
|
__metadata("design:paramtypes", [String])
|
|
106
60
|
], MinValidator);
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWluVmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3ZhbGlkYXRpb24vVmFsaWRhdG9ycy9NaW5WYWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQXdDO0FBQ3hDLDJDQUFxRTtBQUNyRSw2Q0FBeUM7QUFHekM7Ozs7Ozs7OztHQVNHO0FBRUksSUFBTSxZQUFZLEdBQWxCLE1BQU0sWUFBYSxTQUFRLHFCQUE4QjtJQUM5RCxZQUFZLFVBQWtCLGtDQUFzQixDQUFDLEdBQUc7UUFDdEQsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNJLFNBQVMsQ0FDZCxLQUE2QixFQUM3QixPQUE0QjtRQUU1QixJQUFJLE9BQU8sS0FBSyxLQUFLLFdBQVc7WUFBRSxPQUFPO1FBRXpDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDdEIsSUFBSSxLQUFLLFlBQVksSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLFlBQVksSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNwRCxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEIsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxPQUFPLEtBQUssR0FBRyxHQUFHO1lBQ2hCLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUM7WUFDdkQsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNoQixDQUFDO0NBQ0YsQ0FBQTtBQWpDWSxvQ0FBWTt1QkFBWixZQUFZO0lBRHhCLElBQUEsc0JBQVMsRUFBQywwQkFBYyxDQUFDLEdBQUcsQ0FBQzs7R0FDakIsWUFBWSxDQWlDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0b3IgfSBmcm9tIFwiLi9WYWxpZGF0b3JcIjtcbmltcG9ydCB7IERFRkFVTFRfRVJST1JfTUVTU0FHRVMsIFZhbGlkYXRpb25LZXlzIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyB2YWxpZGF0b3IgfSBmcm9tIFwiLi9kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBNaW5WYWxpZGF0b3JPcHRpb25zIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgTWluIFZhbGlkYXRvclxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBbbWVzc2FnZV0gZGVmYXVsdHMgdG8ge0BsaW5rIERFRkFVTFRfRVJST1JfTUVTU0FHRVMjTUlOfVxuICpcbiAqIEBjbGFzcyBNaW5WYWxpZGF0b3JcbiAqIEBleHRlbmRzIFZhbGlkYXRvclxuICpcbiAqIEBjYXRlZ29yeSBWYWxpZGF0b3JzXG4gKi9cbkB2YWxpZGF0b3IoVmFsaWRhdGlvbktleXMuTUlOKVxuZXhwb3J0IGNsYXNzIE1pblZhbGlkYXRvciBleHRlbmRzIFZhbGlkYXRvcjxNaW5WYWxpZGF0b3JPcHRpb25zPiB7XG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZyA9IERFRkFVTFRfRVJST1JfTUVTU0FHRVMuTUlOKSB7XG4gICAgc3VwZXIobWVzc2FnZSwgXCJudW1iZXJcIiwgXCJEYXRlXCIsIFwic3RyaW5nXCIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFZhbGlkYXRlcyBNb2RlbFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWVcbiAgICogQHBhcmFtIHtNYXhWYWxpZGF0b3JPcHRpb25zfSBvcHRpb25zXG4gICAqXG4gICAqIEByZXR1cm4ge3N0cmluZyB8IHVuZGVmaW5lZH1cbiAgICpcbiAgICogQG92ZXJyaWRlXG4gICAqXG4gICAqIEBzZWUgVmFsaWRhdG9yI2hhc0Vycm9yc1xuICAgKi9cbiAgcHVibGljIGhhc0Vycm9ycyhcbiAgICB2YWx1ZTogbnVtYmVyIHwgRGF0ZSB8IHN0cmluZyxcbiAgICBvcHRpb25zOiBNaW5WYWxpZGF0b3JPcHRpb25zXG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJ1bmRlZmluZWRcIikgcmV0dXJuO1xuXG4gICAgbGV0IHsgbWluIH0gPSBvcHRpb25zO1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUgJiYgIShtaW4gaW5zdGFuY2VvZiBEYXRlKSkge1xuICAgICAgbWluID0gbmV3IERhdGUobWluKTtcbiAgICAgIGlmIChOdW1iZXIuaXNOYU4obWluLmdldERhdGUoKSkpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgTWluIHBhcmFtIGRlZmluZWRcIik7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZSA8IG1pblxuICAgICAgPyB0aGlzLmdldE1lc3NhZ2Uob3B0aW9ucy5tZXNzYWdlIHx8IHRoaXMubWVzc2FnZSwgbWluKVxuICAgICAgOiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,70 +1,24 @@
|
|
|
1
1
|
import { Validator } from "./Validator";
|
|
2
2
|
import { MinValidatorOptions } from "../types";
|
|
3
3
|
/**
|
|
4
|
-
* @
|
|
5
|
-
* @summary The MinValidator checks if a numeric value, date, or string is greater than or equal to
|
|
6
|
-
* a specified minimum value. It supports comparing numbers directly, dates chronologically,
|
|
7
|
-
* and strings lexicographically. This validator is typically used with the @min decorator.
|
|
4
|
+
* @summary Min Validator
|
|
8
5
|
*
|
|
9
|
-
* @param {string} [message]
|
|
6
|
+
* @param {string} [message] defaults to {@link DEFAULT_ERROR_MESSAGES#MIN}
|
|
10
7
|
*
|
|
11
8
|
* @class MinValidator
|
|
12
9
|
* @extends Validator
|
|
13
10
|
*
|
|
14
|
-
* @example
|
|
15
|
-
* ```typescript
|
|
16
|
-
* // Create a min validator with default error message
|
|
17
|
-
* const minValidator = new MinValidator();
|
|
18
|
-
*
|
|
19
|
-
* // Create a min validator with custom error message
|
|
20
|
-
* const customMinValidator = new MinValidator("Value must be at least {0}");
|
|
21
|
-
*
|
|
22
|
-
* // Validate a number
|
|
23
|
-
* const numOptions = { min: 10, message: "Number too small" };
|
|
24
|
-
* const numResult = minValidator.hasErrors(50, numOptions); // undefined (valid)
|
|
25
|
-
* const invalidNumResult = minValidator.hasErrors(5, numOptions); // Returns error message (invalid)
|
|
26
|
-
*
|
|
27
|
-
* // Validate a date
|
|
28
|
-
* const dateOptions = { min: new Date(2023, 0, 1) };
|
|
29
|
-
* const dateResult = minValidator.hasErrors(new Date(2023, 5, 15), dateOptions); // undefined (valid)
|
|
30
|
-
* ```
|
|
31
|
-
*
|
|
32
|
-
* @mermaid
|
|
33
|
-
* sequenceDiagram
|
|
34
|
-
* participant C as Client
|
|
35
|
-
* participant V as MinValidator
|
|
36
|
-
*
|
|
37
|
-
* C->>V: new MinValidator(message)
|
|
38
|
-
* C->>V: hasErrors(value, options)
|
|
39
|
-
* alt value is undefined
|
|
40
|
-
* V-->>C: undefined (valid)
|
|
41
|
-
* else value is Date and min is not Date
|
|
42
|
-
* V->>V: Convert min to Date
|
|
43
|
-
* alt conversion fails
|
|
44
|
-
* V-->>C: Error: Invalid Min param
|
|
45
|
-
* end
|
|
46
|
-
* end
|
|
47
|
-
* alt value < min
|
|
48
|
-
* V-->>C: Error message
|
|
49
|
-
* else value >= min
|
|
50
|
-
* V-->>C: undefined (valid)
|
|
51
|
-
* end
|
|
52
|
-
*
|
|
53
11
|
* @category Validators
|
|
54
12
|
*/
|
|
55
13
|
export declare class MinValidator extends Validator<MinValidatorOptions> {
|
|
56
14
|
constructor(message?: string);
|
|
57
15
|
/**
|
|
58
|
-
* @
|
|
59
|
-
* @summary Validates that the provided value is not less than the minimum value
|
|
60
|
-
* specified in the options. For dates, it performs chronological comparison,
|
|
61
|
-
* converting string representations to Date objects if necessary. For numbers
|
|
62
|
-
* and strings, it performs direct comparison.
|
|
16
|
+
* @summary Validates Model
|
|
63
17
|
*
|
|
64
|
-
* @param {
|
|
65
|
-
* @param {
|
|
18
|
+
* @param {string} value
|
|
19
|
+
* @param {MaxValidatorOptions} options
|
|
66
20
|
*
|
|
67
|
-
* @return {string | undefined}
|
|
21
|
+
* @return {string | undefined}
|
|
68
22
|
*
|
|
69
23
|
* @override
|
|
70
24
|
*
|