@decaf-ts/decorator-validation 1.14.0 → 1.16.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/lib/cjs/constants/errors.cjs +1 -0
- package/lib/cjs/constants/errors.cjs.map +1 -0
- package/lib/cjs/constants/index.cjs +1 -0
- package/lib/cjs/constants/index.cjs.map +1 -0
- package/lib/cjs/constants/validation.cjs +1 -0
- package/lib/cjs/constants/validation.cjs.map +1 -0
- package/lib/cjs/index.cjs +2 -1
- package/lib/cjs/index.cjs.map +1 -0
- package/lib/cjs/model/Builder.cjs +49 -48
- package/lib/cjs/model/Builder.cjs.map +1 -0
- package/lib/cjs/model/Model.cjs +31 -30
- package/lib/cjs/model/Model.cjs.map +1 -0
- package/lib/cjs/model/ModelErrorDefinition.cjs +1 -0
- package/lib/cjs/model/ModelErrorDefinition.cjs.map +1 -0
- package/lib/cjs/model/ModelRegistry.cjs +7 -6
- package/lib/cjs/model/ModelRegistry.cjs.map +1 -0
- package/lib/cjs/model/constants.cjs +2 -13
- package/lib/cjs/model/constants.cjs.map +1 -0
- package/lib/cjs/model/construction.cjs +5 -4
- package/lib/cjs/model/construction.cjs.map +1 -0
- package/lib/cjs/model/decorators.cjs +12 -11
- package/lib/cjs/model/decorators.cjs.map +1 -0
- package/lib/cjs/model/index.cjs +1 -0
- package/lib/cjs/model/index.cjs.map +1 -0
- package/lib/cjs/model/types.cjs +1 -0
- package/lib/cjs/model/types.cjs.map +1 -0
- package/lib/cjs/model/utils.cjs +1 -0
- package/lib/cjs/model/utils.cjs.map +1 -0
- package/lib/cjs/model/validation.cjs +33 -32
- package/lib/cjs/model/validation.cjs.map +1 -0
- package/lib/cjs/overrides/Metadata.cjs +1 -0
- package/lib/cjs/overrides/Metadata.cjs.map +1 -0
- package/lib/cjs/overrides/index.cjs +1 -0
- package/lib/cjs/overrides/index.cjs.map +1 -0
- package/lib/cjs/overrides/overrides.cjs +20 -19
- package/lib/cjs/overrides/overrides.cjs.map +1 -0
- package/lib/cjs/overrides/types.cjs +1 -0
- package/lib/cjs/overrides/types.cjs.map +1 -0
- package/lib/cjs/types/index.cjs +1 -0
- package/lib/cjs/types/index.cjs.map +1 -0
- package/lib/cjs/types/validation.cjs +1 -0
- package/lib/cjs/types/{validation.js.map → validation.cjs.map} +1 -1
- package/lib/cjs/utils/DateBuilder.cjs +1 -0
- package/lib/cjs/utils/DateBuilder.cjs.map +1 -0
- package/lib/cjs/utils/PathProxy.cjs +9 -8
- package/lib/cjs/utils/PathProxy.cjs.map +1 -0
- package/lib/cjs/utils/constants.cjs +2 -21
- package/lib/cjs/utils/constants.cjs.map +1 -0
- package/lib/cjs/utils/dates.cjs +9 -8
- package/lib/cjs/utils/dates.cjs.map +1 -0
- package/lib/cjs/utils/equality.cjs +1 -0
- package/lib/cjs/utils/equality.cjs.map +1 -0
- package/lib/cjs/utils/hashing.cjs +6 -3
- package/lib/cjs/utils/hashing.cjs.map +1 -0
- package/lib/cjs/utils/index.cjs +1 -0
- package/lib/cjs/utils/index.cjs.map +1 -0
- package/lib/cjs/utils/registry.cjs +1 -0
- package/lib/cjs/utils/registry.cjs.map +1 -0
- package/lib/cjs/utils/serialization.cjs +3 -2
- package/lib/cjs/utils/serialization.cjs.map +1 -0
- package/lib/cjs/utils/serializers.cjs +8 -7
- package/lib/cjs/utils/serializers.cjs.map +1 -0
- package/lib/cjs/utils/strings.cjs +1 -0
- package/lib/cjs/utils/strings.cjs.map +1 -0
- package/lib/cjs/utils/types.cjs +1 -0
- package/lib/cjs/utils/types.cjs.map +1 -0
- package/lib/cjs/validation/Validation.cjs +9 -8
- package/lib/cjs/validation/Validation.cjs.map +1 -0
- package/lib/cjs/validation/Validators/AsyncValidator.cjs +5 -4
- package/lib/cjs/validation/Validators/AsyncValidator.cjs.map +1 -0
- package/lib/cjs/validation/Validators/BaseValidator.cjs +8 -7
- package/lib/cjs/validation/Validators/BaseValidator.cjs.map +1 -0
- package/lib/cjs/validation/Validators/DateValidator.cjs +17 -11
- package/lib/cjs/validation/Validators/DateValidator.cjs.map +1 -0
- package/lib/cjs/validation/Validators/DiffValidator.cjs +21 -15
- package/lib/cjs/validation/Validators/DiffValidator.cjs.map +1 -0
- package/lib/cjs/validation/Validators/EmailValidator.cjs +18 -12
- package/lib/cjs/validation/Validators/EmailValidator.cjs.map +1 -0
- package/lib/cjs/validation/Validators/EqualsValidator.cjs +21 -15
- package/lib/cjs/validation/Validators/EqualsValidator.cjs.map +1 -0
- package/lib/cjs/validation/Validators/GreaterThanOrEqualValidator.cjs +24 -18
- package/lib/cjs/validation/Validators/GreaterThanOrEqualValidator.cjs.map +1 -0
- package/lib/cjs/validation/Validators/GreaterThanValidator.cjs +21 -15
- package/lib/cjs/validation/Validators/GreaterThanValidator.cjs.map +1 -0
- package/lib/cjs/validation/Validators/LessThanOrEqualValidator.cjs +24 -18
- package/lib/cjs/validation/Validators/LessThanOrEqualValidator.cjs.map +1 -0
- package/lib/cjs/validation/Validators/LessThanValidator.cjs +21 -15
- package/lib/cjs/validation/Validators/LessThanValidator.cjs.map +1 -0
- package/lib/cjs/validation/Validators/ListValidator.cjs +17 -11
- package/lib/cjs/validation/Validators/ListValidator.cjs.map +1 -0
- package/lib/cjs/validation/Validators/MaxLengthValidator.cjs +19 -13
- package/lib/cjs/validation/Validators/MaxLengthValidator.cjs.map +1 -0
- package/lib/cjs/validation/Validators/MaxValidator.cjs +17 -11
- package/lib/cjs/validation/Validators/MaxValidator.cjs.map +1 -0
- package/lib/cjs/validation/Validators/MinLengthValidator.cjs +19 -13
- package/lib/cjs/validation/Validators/MinLengthValidator.cjs.map +1 -0
- package/lib/cjs/validation/Validators/MinValidator.cjs +17 -11
- package/lib/cjs/validation/Validators/MinValidator.cjs.map +1 -0
- package/lib/cjs/validation/Validators/OptionValidator.cjs +17 -11
- package/lib/cjs/validation/Validators/OptionValidator.cjs.map +1 -0
- package/lib/cjs/validation/Validators/PasswordValidator.cjs +18 -12
- package/lib/cjs/validation/Validators/PasswordValidator.cjs.map +1 -0
- package/lib/cjs/validation/Validators/PatternValidator.cjs +17 -11
- package/lib/cjs/validation/Validators/PatternValidator.cjs.map +1 -0
- package/lib/cjs/validation/Validators/RequiredValidator.cjs +17 -11
- package/lib/cjs/validation/Validators/RequiredValidator.cjs.map +1 -0
- package/lib/cjs/validation/Validators/StepValidator.cjs +17 -11
- package/lib/cjs/validation/Validators/StepValidator.cjs.map +1 -0
- package/lib/cjs/validation/Validators/TypeValidator.cjs +23 -17
- package/lib/cjs/validation/Validators/TypeValidator.cjs.map +1 -0
- package/lib/cjs/validation/Validators/URLValidator.cjs +18 -12
- package/lib/cjs/validation/Validators/URLValidator.cjs.map +1 -0
- package/lib/cjs/validation/Validators/Validator.cjs +5 -4
- package/lib/cjs/validation/Validators/Validator.cjs.map +1 -0
- package/lib/cjs/validation/Validators/ValidatorRegistry.cjs +4 -3
- package/lib/cjs/validation/Validators/ValidatorRegistry.cjs.map +1 -0
- package/lib/cjs/validation/Validators/constants.cjs +3 -2
- package/lib/cjs/validation/Validators/constants.cjs.map +1 -0
- package/lib/cjs/validation/Validators/decorators.cjs +5 -4
- package/lib/cjs/validation/Validators/decorators.cjs.map +1 -0
- package/lib/cjs/validation/Validators/index.cjs +1 -0
- package/lib/cjs/validation/Validators/index.cjs.map +1 -0
- package/lib/cjs/validation/Validators/utils.cjs +14 -13
- package/lib/cjs/validation/Validators/utils.cjs.map +1 -0
- package/lib/cjs/validation/decorators.cjs +70 -69
- package/lib/cjs/validation/decorators.cjs.map +1 -0
- package/lib/cjs/validation/index.cjs +1 -0
- package/lib/cjs/validation/index.cjs.map +1 -0
- package/lib/cjs/validation/types.cjs +2 -1
- package/lib/cjs/validation/types.cjs.map +1 -0
- package/lib/esm/index.js +1 -1
- package/lib/types/constants/errors.d.cts +17 -0
- package/lib/types/constants/errors.d.mts +17 -0
- package/lib/types/constants/index.d.cts +2 -0
- package/lib/types/constants/index.d.mts +2 -0
- package/lib/types/constants/validation.d.cts +16 -0
- package/lib/types/constants/validation.d.mts +16 -0
- package/lib/types/index.d.cts +20 -0
- package/lib/types/index.d.mts +20 -0
- package/lib/types/index.d.ts +1 -1
- package/lib/types/model/Builder.d.cts +86 -0
- package/lib/types/model/Builder.d.mts +86 -0
- package/lib/types/model/Model.d.cts +286 -0
- package/lib/types/model/Model.d.mts +286 -0
- package/lib/types/model/ModelErrorDefinition.d.cts +22 -0
- package/lib/types/model/ModelErrorDefinition.d.mts +22 -0
- package/lib/types/model/ModelRegistry.d.cts +181 -0
- package/lib/types/model/ModelRegistry.d.mts +181 -0
- package/lib/types/model/constants.d.cts +65 -0
- package/lib/types/model/constants.d.mts +65 -0
- package/lib/types/model/construction.d.cts +46 -0
- package/lib/types/model/construction.d.mts +46 -0
- package/lib/types/model/decorators.d.cts +47 -0
- package/lib/types/model/decorators.d.mts +47 -0
- package/lib/types/model/index.d.cts +10 -0
- package/lib/types/model/index.d.mts +10 -0
- package/lib/types/model/types.d.cts +145 -0
- package/lib/types/model/types.d.mts +145 -0
- package/lib/types/model/utils.d.cts +13 -0
- package/lib/types/model/utils.d.mts +13 -0
- package/lib/types/model/validation.d.cts +92 -0
- package/lib/types/model/validation.d.mts +92 -0
- package/lib/types/overrides/Metadata.d.cts +132 -0
- package/lib/types/overrides/Metadata.d.mts +132 -0
- package/lib/types/overrides/index.d.cts +4 -0
- package/lib/types/overrides/index.d.mts +4 -0
- package/lib/types/overrides/overrides.d.cts +1 -0
- package/lib/types/overrides/overrides.d.mts +1 -0
- package/lib/types/overrides/types.d.cts +17 -0
- package/lib/types/overrides/types.d.mts +17 -0
- package/lib/types/types/index.d.cts +1 -0
- package/lib/types/types/index.d.mts +1 -0
- package/lib/types/types/validation.d.cts +28 -0
- package/lib/types/types/validation.d.mts +28 -0
- package/lib/types/utils/DateBuilder.d.cts +121 -0
- package/lib/types/utils/DateBuilder.d.mts +121 -0
- package/lib/types/utils/PathProxy.d.cts +43 -0
- package/lib/types/utils/PathProxy.d.mts +43 -0
- package/lib/types/utils/constants.d.cts +32 -0
- package/lib/types/utils/constants.d.mts +32 -0
- package/lib/types/utils/dates.d.cts +86 -0
- package/lib/types/utils/dates.d.mts +86 -0
- package/lib/types/utils/equality.d.cts +56 -0
- package/lib/types/utils/equality.d.mts +56 -0
- package/lib/types/utils/hashing.d.cts +82 -0
- package/lib/types/utils/hashing.d.mts +82 -0
- package/lib/types/utils/index.d.cts +11 -0
- package/lib/types/utils/index.d.mts +11 -0
- package/lib/types/utils/registry.d.cts +68 -0
- package/lib/types/utils/registry.d.mts +68 -0
- package/lib/types/utils/serialization.d.cts +12 -0
- package/lib/types/utils/serialization.d.mts +12 -0
- package/lib/types/utils/serializers.d.cts +41 -0
- package/lib/types/utils/serializers.d.mts +41 -0
- package/lib/types/utils/strings.d.cts +25 -0
- package/lib/types/utils/strings.d.mts +25 -0
- package/lib/types/utils/types.d.cts +35 -0
- package/lib/types/utils/types.d.mts +35 -0
- package/lib/types/validation/Validation.d.cts +53 -0
- package/lib/types/validation/Validation.d.mts +53 -0
- package/lib/types/validation/Validators/AsyncValidator.d.cts +72 -0
- package/lib/types/validation/Validators/AsyncValidator.d.mts +72 -0
- package/lib/types/validation/Validators/BaseValidator.d.cts +118 -0
- package/lib/types/validation/Validators/BaseValidator.d.mts +118 -0
- package/lib/types/validation/Validators/DateValidator.d.cts +60 -0
- package/lib/types/validation/Validators/DateValidator.d.mts +60 -0
- package/lib/types/validation/Validators/DiffValidator.d.cts +29 -0
- package/lib/types/validation/Validators/DiffValidator.d.mts +29 -0
- package/lib/types/validation/Validators/EmailValidator.d.cts +60 -0
- package/lib/types/validation/Validators/EmailValidator.d.mts +60 -0
- package/lib/types/validation/Validators/EqualsValidator.d.cts +29 -0
- package/lib/types/validation/Validators/EqualsValidator.d.mts +29 -0
- package/lib/types/validation/Validators/GreaterThanOrEqualValidator.d.cts +29 -0
- package/lib/types/validation/Validators/GreaterThanOrEqualValidator.d.mts +29 -0
- package/lib/types/validation/Validators/GreaterThanValidator.d.cts +29 -0
- package/lib/types/validation/Validators/GreaterThanValidator.d.mts +29 -0
- package/lib/types/validation/Validators/LessThanOrEqualValidator.d.cts +29 -0
- package/lib/types/validation/Validators/LessThanOrEqualValidator.d.mts +29 -0
- package/lib/types/validation/Validators/LessThanValidator.d.cts +29 -0
- package/lib/types/validation/Validators/LessThanValidator.d.mts +29 -0
- package/lib/types/validation/Validators/ListValidator.d.cts +66 -0
- package/lib/types/validation/Validators/ListValidator.d.mts +66 -0
- package/lib/types/validation/Validators/MaxLengthValidator.d.cts +29 -0
- package/lib/types/validation/Validators/MaxLengthValidator.d.mts +29 -0
- package/lib/types/validation/Validators/MaxValidator.d.cts +74 -0
- package/lib/types/validation/Validators/MaxValidator.d.mts +74 -0
- package/lib/types/validation/Validators/MinLengthValidator.d.cts +29 -0
- package/lib/types/validation/Validators/MinLengthValidator.d.mts +29 -0
- package/lib/types/validation/Validators/MinValidator.d.cts +74 -0
- package/lib/types/validation/Validators/MinValidator.d.mts +74 -0
- package/lib/types/validation/Validators/OptionValidator.d.cts +29 -0
- package/lib/types/validation/Validators/OptionValidator.d.mts +29 -0
- package/lib/types/validation/Validators/PasswordValidator.d.cts +28 -0
- package/lib/types/validation/Validators/PasswordValidator.d.mts +28 -0
- package/lib/types/validation/Validators/PatternValidator.d.cts +103 -0
- package/lib/types/validation/Validators/PatternValidator.d.mts +103 -0
- package/lib/types/validation/Validators/RequiredValidator.d.cts +74 -0
- package/lib/types/validation/Validators/RequiredValidator.d.mts +74 -0
- package/lib/types/validation/Validators/StepValidator.d.cts +29 -0
- package/lib/types/validation/Validators/StepValidator.d.mts +29 -0
- package/lib/types/validation/Validators/TypeValidator.d.cts +79 -0
- package/lib/types/validation/Validators/TypeValidator.d.mts +79 -0
- package/lib/types/validation/Validators/URLValidator.d.cts +61 -0
- package/lib/types/validation/Validators/URLValidator.d.mts +61 -0
- package/lib/types/validation/Validators/Validator.d.cts +65 -0
- package/lib/types/validation/Validators/Validator.d.mts +65 -0
- package/lib/types/validation/Validators/ValidatorRegistry.d.cts +41 -0
- package/lib/types/validation/Validators/ValidatorRegistry.d.mts +41 -0
- package/lib/types/validation/Validators/constants.d.cts +157 -0
- package/lib/types/validation/Validators/constants.d.mts +157 -0
- package/lib/types/validation/Validators/decorators.d.cts +12 -0
- package/lib/types/validation/Validators/decorators.d.mts +12 -0
- package/lib/types/validation/Validators/index.d.cts +26 -0
- package/lib/types/validation/Validators/index.d.mts +26 -0
- package/lib/types/validation/Validators/utils.d.cts +75 -0
- package/lib/types/validation/Validators/utils.d.mts +75 -0
- package/lib/types/validation/decorators.d.cts +313 -0
- package/lib/types/validation/decorators.d.mts +313 -0
- package/lib/types/validation/index.d.cts +9 -0
- package/lib/types/validation/index.d.mts +9 -0
- package/lib/types/validation/types.d.cts +309 -0
- package/lib/types/validation/types.d.mts +309 -0
- package/package.json +1 -1
- package/lib/cjs/constants/errors.js.map +0 -1
- package/lib/cjs/constants/index.js.map +0 -1
- package/lib/cjs/constants/validation.js.map +0 -1
- package/lib/cjs/index.js.map +0 -1
- package/lib/cjs/model/Builder.js.map +0 -1
- package/lib/cjs/model/Model.js.map +0 -1
- package/lib/cjs/model/ModelErrorDefinition.js.map +0 -1
- package/lib/cjs/model/ModelRegistry.js.map +0 -1
- package/lib/cjs/model/constants.js.map +0 -1
- package/lib/cjs/model/construction.js.map +0 -1
- package/lib/cjs/model/decorators.js.map +0 -1
- package/lib/cjs/model/index.js.map +0 -1
- package/lib/cjs/model/types.js.map +0 -1
- package/lib/cjs/model/utils.js.map +0 -1
- package/lib/cjs/model/validation.js.map +0 -1
- package/lib/cjs/overrides/Metadata.js.map +0 -1
- package/lib/cjs/overrides/index.js.map +0 -1
- package/lib/cjs/overrides/overrides.js.map +0 -1
- package/lib/cjs/overrides/types.js.map +0 -1
- package/lib/cjs/types/index.js.map +0 -1
- package/lib/cjs/utils/DateBuilder.js.map +0 -1
- package/lib/cjs/utils/PathProxy.js.map +0 -1
- package/lib/cjs/utils/constants.js.map +0 -1
- package/lib/cjs/utils/dates.js.map +0 -1
- package/lib/cjs/utils/equality.js.map +0 -1
- package/lib/cjs/utils/hashing.js.map +0 -1
- package/lib/cjs/utils/index.js.map +0 -1
- package/lib/cjs/utils/registry.js.map +0 -1
- package/lib/cjs/utils/serialization.js.map +0 -1
- package/lib/cjs/utils/serializers.js.map +0 -1
- package/lib/cjs/utils/strings.js.map +0 -1
- package/lib/cjs/utils/types.js.map +0 -1
- package/lib/cjs/validation/Validation.js.map +0 -1
- package/lib/cjs/validation/Validators/AsyncValidator.js.map +0 -1
- package/lib/cjs/validation/Validators/BaseValidator.js.map +0 -1
- package/lib/cjs/validation/Validators/DateValidator.js.map +0 -1
- package/lib/cjs/validation/Validators/DiffValidator.js.map +0 -1
- package/lib/cjs/validation/Validators/EmailValidator.js.map +0 -1
- package/lib/cjs/validation/Validators/EqualsValidator.js.map +0 -1
- package/lib/cjs/validation/Validators/GreaterThanOrEqualValidator.js.map +0 -1
- package/lib/cjs/validation/Validators/GreaterThanValidator.js.map +0 -1
- package/lib/cjs/validation/Validators/LessThanOrEqualValidator.js.map +0 -1
- package/lib/cjs/validation/Validators/LessThanValidator.js.map +0 -1
- package/lib/cjs/validation/Validators/ListValidator.js.map +0 -1
- package/lib/cjs/validation/Validators/MaxLengthValidator.js.map +0 -1
- package/lib/cjs/validation/Validators/MaxValidator.js.map +0 -1
- package/lib/cjs/validation/Validators/MinLengthValidator.js.map +0 -1
- package/lib/cjs/validation/Validators/MinValidator.js.map +0 -1
- package/lib/cjs/validation/Validators/OptionValidator.js.map +0 -1
- package/lib/cjs/validation/Validators/PasswordValidator.js.map +0 -1
- package/lib/cjs/validation/Validators/PatternValidator.js.map +0 -1
- package/lib/cjs/validation/Validators/RequiredValidator.js.map +0 -1
- package/lib/cjs/validation/Validators/StepValidator.js.map +0 -1
- package/lib/cjs/validation/Validators/TypeValidator.js.map +0 -1
- package/lib/cjs/validation/Validators/URLValidator.js.map +0 -1
- package/lib/cjs/validation/Validators/Validator.js.map +0 -1
- package/lib/cjs/validation/Validators/ValidatorRegistry.js.map +0 -1
- package/lib/cjs/validation/Validators/constants.js.map +0 -1
- package/lib/cjs/validation/Validators/decorators.js.map +0 -1
- package/lib/cjs/validation/Validators/index.js.map +0 -1
- package/lib/cjs/validation/Validators/utils.js.map +0 -1
- package/lib/cjs/validation/decorators.js.map +0 -1
- package/lib/cjs/validation/index.js.map +0 -1
- package/lib/cjs/validation/types.js.map +0 -1
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
import { Constructor } from "@decaf-ts/decoration";
|
|
2
|
+
import { ValidationKeys, Validator } from "./Validators/index.cjs";
|
|
3
|
+
import { IRegistry } from "../utils/index.cjs";
|
|
4
|
+
/**
|
|
5
|
+
* @description Type definition for metadata used by validation decorators
|
|
6
|
+
* @summary Defines the structure of metadata attached to properties by validation decorators.
|
|
7
|
+
* This metadata is used during validation to determine validation rules and error messages.
|
|
8
|
+
*
|
|
9
|
+
* @property {any[]} [args] - Optional arguments for the validator
|
|
10
|
+
* @property {string} message - Error message to display when validation fails
|
|
11
|
+
* @property {string[]} [types] - Array of type names that the property can have
|
|
12
|
+
* @property {boolean} async - Indicates whether the validator associated with the decorator performs asynchronous validation logic.
|
|
13
|
+
* Use `true` when the validator returns a Promise, and `false` when the validation is synchronous.
|
|
14
|
+
*
|
|
15
|
+
* @typedef {Object} ValidationMetadata
|
|
16
|
+
* @memberOf module:decorator-validation
|
|
17
|
+
* @category Validation
|
|
18
|
+
*/
|
|
19
|
+
export type ValidationMetadata = {
|
|
20
|
+
[indexer: string]: any;
|
|
21
|
+
args?: any[];
|
|
22
|
+
message: string;
|
|
23
|
+
types?: string[];
|
|
24
|
+
async: boolean;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* @description Type definition for property-level validation decorator configuration
|
|
28
|
+
* @summary Defines the structure that associates a property with its validation decorators.
|
|
29
|
+
* This type is used to track which decorators are applied to a specific property during validation.
|
|
30
|
+
*
|
|
31
|
+
* @property {string|symbol} prop - The property name or symbol that the decorators are applied to
|
|
32
|
+
* @property {ValidationDecoratorDefinition[]} decorators - Array of decorator definitions applied to the property
|
|
33
|
+
*
|
|
34
|
+
* @typedef {Object} ValidationPropertyDecoratorDefinition
|
|
35
|
+
* @memberOf module:decorator-validation
|
|
36
|
+
* @category Validation
|
|
37
|
+
*/
|
|
38
|
+
export type ValidationPropertyDecoratorDefinition = {
|
|
39
|
+
prop: string | symbol;
|
|
40
|
+
decorators: ValidationDecoratorDefinition[];
|
|
41
|
+
async?: boolean;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* @description Type definition for individual validation decorator metadata
|
|
45
|
+
* @summary Extends the base DecoratorMetadata type with validation-specific properties.
|
|
46
|
+
* This type represents the metadata for a single validation decorator applied to a property.
|
|
47
|
+
*
|
|
48
|
+
* @property {ValidationElementDefinition} props - The validation element properties and configuration
|
|
49
|
+
*
|
|
50
|
+
* @typedef {Object} ValidationDecoratorDefinition
|
|
51
|
+
* @memberOf module:decorator-validation
|
|
52
|
+
* @category Validation
|
|
53
|
+
*/
|
|
54
|
+
export type ValidationDecoratorDefinition = {
|
|
55
|
+
props: ValidationElementDefinition;
|
|
56
|
+
async?: boolean;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* @summary Type for a validator element metadata
|
|
60
|
+
* @memberOf module:decorator-validation
|
|
61
|
+
* @category Validation
|
|
62
|
+
*/
|
|
63
|
+
export type ValidationElementDefinition = {
|
|
64
|
+
[indexer: string]: any;
|
|
65
|
+
value?: string | number;
|
|
66
|
+
message: string;
|
|
67
|
+
description: string;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* @summary Type for a model errors
|
|
71
|
+
* @memberOf module:decorator-validation
|
|
72
|
+
* @category Validation
|
|
73
|
+
*/
|
|
74
|
+
export type ModelErrors = Record<string, Record<string, string | undefined>>;
|
|
75
|
+
/**
|
|
76
|
+
* @summary Util type for {@link Validator} configuration
|
|
77
|
+
* @memberOf module:decorator-validation
|
|
78
|
+
* @category Validation
|
|
79
|
+
*/
|
|
80
|
+
export type ValidatorDefinition = {
|
|
81
|
+
validator: Constructor<Validator>;
|
|
82
|
+
validationKey: string;
|
|
83
|
+
save: boolean;
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* @description Interface for a registry that manages validator instances
|
|
87
|
+
* @summary Defines the contract for a registry that stores and retrieves validators.
|
|
88
|
+
* The registry is responsible for maintaining a collection of validators and providing
|
|
89
|
+
* access to them by key.
|
|
90
|
+
*
|
|
91
|
+
* @interface IValidatorRegistry
|
|
92
|
+
* @template T Type of validator, must extend Validator
|
|
93
|
+
* @extends IRegistry<T>
|
|
94
|
+
* @memberOf module:decorator-validation
|
|
95
|
+
* @category Validation
|
|
96
|
+
*/
|
|
97
|
+
export interface IValidatorRegistry<T extends Validator> extends IRegistry<T> {
|
|
98
|
+
/**
|
|
99
|
+
* @description Retrieves custom validation keys defined in the registry
|
|
100
|
+
* @summary Returns a mapping of custom validation keys to their corresponding standard keys.
|
|
101
|
+
* This allows for aliasing validation keys for specific use cases.
|
|
102
|
+
*
|
|
103
|
+
* @return {Record<string, string>} Object mapping custom keys to standard validation keys
|
|
104
|
+
*/
|
|
105
|
+
getCustomKeys(): Record<string, string>;
|
|
106
|
+
/**
|
|
107
|
+
* @description Gets all registered validator keys
|
|
108
|
+
* @summary Returns an array of all validation keys that have registered validators.
|
|
109
|
+
*
|
|
110
|
+
* @return {string[]} Array of registered validator keys
|
|
111
|
+
*/
|
|
112
|
+
getKeys(): string[];
|
|
113
|
+
/**
|
|
114
|
+
* @description Registers one or more validators with the registry
|
|
115
|
+
* @summary Adds validators to the registry, making them available for validation operations.
|
|
116
|
+
* Validators can be provided as instances or as validator definitions.
|
|
117
|
+
*
|
|
118
|
+
* @param {...(T|ValidatorDefinition)} validator - Validator instances or definitions to register
|
|
119
|
+
* @return {void}
|
|
120
|
+
*/
|
|
121
|
+
register<T extends Validator>(...validator: (T | ValidatorDefinition)[]): void;
|
|
122
|
+
/**
|
|
123
|
+
* @description Retrieves a validator by its key
|
|
124
|
+
* @summary Looks up a validator in the registry using its validation key.
|
|
125
|
+
* Returns the validator if found, or undefined if no validator is registered for the key.
|
|
126
|
+
*
|
|
127
|
+
* @param {string} key - The validation key to look up, typically one of the {@link ValidationKeys}
|
|
128
|
+
* @return {T|undefined} The registered validator or undefined if none matches the provided key
|
|
129
|
+
*/
|
|
130
|
+
get<T extends Validator>(key: string): T | undefined;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* @description Base options type for all validators
|
|
134
|
+
* @summary Defines the common properties available to all validators
|
|
135
|
+
* @interface ValidatorOptions
|
|
136
|
+
* @property {string} [message] - Custom error message to display when validation fails
|
|
137
|
+
* @property {boolean} async - Indicates whether the validator associated with the decorator performs asynchronous validation logic.
|
|
138
|
+
* Use `true` when the validator returns a Promise, and `false` when the validation is synchronous.
|
|
139
|
+
* @category Validation
|
|
140
|
+
*/
|
|
141
|
+
export interface ValidatorOptions {
|
|
142
|
+
message?: string;
|
|
143
|
+
description?: string;
|
|
144
|
+
async?: boolean;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* @description URL validation options interface
|
|
148
|
+
* @summary Defines options for URL validation, including allowed URL types
|
|
149
|
+
* @interface URLValidatorOptions
|
|
150
|
+
* @property {(string|string[]|{ name: string })} types - Specifies the allowed URL types or patterns
|
|
151
|
+
* @category Validation
|
|
152
|
+
*/
|
|
153
|
+
export interface URLValidatorOptions extends ValidatorOptions {
|
|
154
|
+
types: string | string[] | {
|
|
155
|
+
name: string;
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* @description Type validation options interface
|
|
160
|
+
* @summary Defines options for type validation, specifying allowed types
|
|
161
|
+
* @interface TypeValidatorOptions
|
|
162
|
+
* @property {(string|string[]|{ name: string })} type - Specifies the allowed data types
|
|
163
|
+
* @memberOf module:decorator-validation
|
|
164
|
+
* @category Validation
|
|
165
|
+
*/
|
|
166
|
+
export interface TypeValidatorOptions extends ValidatorOptions {
|
|
167
|
+
type: string | string[] | {
|
|
168
|
+
name: string;
|
|
169
|
+
};
|
|
170
|
+
customTypes?: (string | (() => string))[];
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* @description Step validation options interface
|
|
174
|
+
* @summary Defines options for step validation, specifying the step increment
|
|
175
|
+
* @interface StepValidatorOptions
|
|
176
|
+
* @property {(number|string)} [ValidationKeys.STEP] - The step value for numerical validation
|
|
177
|
+
* @memberOf module:decorator-validation
|
|
178
|
+
* @category Validation
|
|
179
|
+
*/
|
|
180
|
+
export interface StepValidatorOptions extends ValidatorOptions {
|
|
181
|
+
[ValidationKeys.STEP]: number | string;
|
|
182
|
+
types?: string[];
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* @description Pattern validation options interface
|
|
186
|
+
* @summary Defines options for pattern validation using regular expressions
|
|
187
|
+
* @interface PatternValidatorOptions
|
|
188
|
+
* @property {(RegExp|string)} [ValidationKeys.PATTERN] - The pattern to match against
|
|
189
|
+
* @memberOf module:decorator-validation
|
|
190
|
+
* @category Validation
|
|
191
|
+
*/
|
|
192
|
+
export interface PatternValidatorOptions extends ValidatorOptions {
|
|
193
|
+
[ValidationKeys.PATTERN]?: RegExp | string;
|
|
194
|
+
types?: string[];
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* @description Minimum value validation options interface
|
|
198
|
+
* @summary Defines options for minimum value validation
|
|
199
|
+
* @interface MinValidatorOptions
|
|
200
|
+
* @property {(number|Date|string)} [ValidationKeys.MIN] - The minimum allowed value
|
|
201
|
+
* @memberOf module:decorator-validation
|
|
202
|
+
* @category Validation
|
|
203
|
+
*/
|
|
204
|
+
export interface MinValidatorOptions extends ValidatorOptions {
|
|
205
|
+
[ValidationKeys.MIN]: number | Date | string;
|
|
206
|
+
types?: string[];
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* @description Minimum length validation options interface
|
|
210
|
+
* @summary Defines options for minimum length validation
|
|
211
|
+
* @interface MinLengthValidatorOptions
|
|
212
|
+
* @property {number} [ValidationKeys.MIN_LENGTH] - The minimum allowed length
|
|
213
|
+
* @memberOf module:decorator-validation
|
|
214
|
+
* @category Validation
|
|
215
|
+
*/
|
|
216
|
+
export interface MinLengthValidatorOptions extends ValidatorOptions {
|
|
217
|
+
[ValidationKeys.MIN_LENGTH]: number;
|
|
218
|
+
types?: string[];
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* @description Maximum value validation options interface
|
|
222
|
+
* @summary Defines options for maximum value validation
|
|
223
|
+
* @interface MaxValidatorOptions
|
|
224
|
+
* @property {(number|Date|string)} [ValidationKeys.MAX] - The maximum allowed value
|
|
225
|
+
* @memberOf module:decorator-validation
|
|
226
|
+
* @category Validation
|
|
227
|
+
*/
|
|
228
|
+
export interface MaxValidatorOptions extends ValidatorOptions {
|
|
229
|
+
[ValidationKeys.MAX]: number | Date | string;
|
|
230
|
+
types?: string[];
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* @description Maximum length validation options interface
|
|
234
|
+
* @summary Defines options for maximum length validation
|
|
235
|
+
* @interface MaxLengthValidatorOptions
|
|
236
|
+
* @property {number} [ValidationKeys.MAX_LENGTH] - The maximum allowed length
|
|
237
|
+
* @memberOf module:decorator-validation
|
|
238
|
+
* @category Validation
|
|
239
|
+
*/
|
|
240
|
+
export interface MaxLengthValidatorOptions extends ValidatorOptions {
|
|
241
|
+
[ValidationKeys.MAX_LENGTH]: number;
|
|
242
|
+
types?: string[];
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* @description List validation options interface
|
|
246
|
+
* @summary Defines options for list validation
|
|
247
|
+
* @interface ListValidatorOptions
|
|
248
|
+
* @property {string[]} clazz - Array of allowed class names or types
|
|
249
|
+
* @memberOf module:decorator-validation
|
|
250
|
+
* @category Validation
|
|
251
|
+
*/
|
|
252
|
+
export interface ListValidatorOptions extends ValidatorOptions {
|
|
253
|
+
clazz: (Constructor<any> | (() => Constructor<any>))[];
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* @description Unique validation options interface
|
|
257
|
+
* @summary Defines options for unique validation
|
|
258
|
+
* @interface UniqueValidatorOptions
|
|
259
|
+
* @property {string[]} unique - Array of allowed class names or types
|
|
260
|
+
* @memberOf module:decorator-validation
|
|
261
|
+
* @category Validation
|
|
262
|
+
*/
|
|
263
|
+
export interface UniqueValidatorOptions extends ValidatorOptions {
|
|
264
|
+
[ValidationKeys.UNIQUE]: string[];
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* @description Date validation options interface
|
|
268
|
+
* @summary Defines options for date validation
|
|
269
|
+
* @interface DateValidatorOptions
|
|
270
|
+
* @property {string} [ValidationKeys.FORMAT] - The expected date format pattern
|
|
271
|
+
* @memberOf module:decorator-validation
|
|
272
|
+
* @category Validation
|
|
273
|
+
*/
|
|
274
|
+
export interface DateValidatorOptions extends ValidatorOptions {
|
|
275
|
+
[ValidationKeys.FORMAT]?: string;
|
|
276
|
+
}
|
|
277
|
+
export interface ComparisonValidatorOptions extends ValidatorOptions {
|
|
278
|
+
label?: string;
|
|
279
|
+
}
|
|
280
|
+
export interface EqualsValidatorOptions extends ComparisonValidatorOptions {
|
|
281
|
+
[ValidationKeys.EQUALS]: string;
|
|
282
|
+
}
|
|
283
|
+
export interface DiffValidatorOptions extends ComparisonValidatorOptions {
|
|
284
|
+
[ValidationKeys.DIFF]: string;
|
|
285
|
+
}
|
|
286
|
+
export interface LessThanValidatorOptions extends ComparisonValidatorOptions {
|
|
287
|
+
[ValidationKeys.LESS_THAN]: string;
|
|
288
|
+
}
|
|
289
|
+
export interface LessThanOrEqualValidatorOptions extends ComparisonValidatorOptions {
|
|
290
|
+
[ValidationKeys.LESS_THAN_OR_EQUAL]: string;
|
|
291
|
+
}
|
|
292
|
+
export interface GreaterThanValidatorOptions extends ComparisonValidatorOptions {
|
|
293
|
+
[ValidationKeys.GREATER_THAN]: string;
|
|
294
|
+
}
|
|
295
|
+
export interface GreaterThanOrEqualValidatorOptions extends ComparisonValidatorOptions {
|
|
296
|
+
[ValidationKeys.GREATER_THAN_OR_EQUAL]: string;
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* @description Enum validation options interface
|
|
300
|
+
* @summary Defines options for enum validation
|
|
301
|
+
* @interface EnumValidatorOptions
|
|
302
|
+
* @property {any[] | Record<any, any>} [ValidationKeys.ENUM] - List of values or a record
|
|
303
|
+
* @memberOf module:decorator-validation
|
|
304
|
+
* @category Validation
|
|
305
|
+
*/
|
|
306
|
+
export interface EnumValidatorOptions extends ValidatorOptions {
|
|
307
|
+
[ValidationKeys.ENUM]: any[] | Record<any, any>;
|
|
308
|
+
types?: string[];
|
|
309
|
+
}
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
import { Constructor } from "@decaf-ts/decoration";
|
|
2
|
+
import { ValidationKeys, Validator } from "./Validators/index.js";
|
|
3
|
+
import { IRegistry } from "../utils/index.js";
|
|
4
|
+
/**
|
|
5
|
+
* @description Type definition for metadata used by validation decorators
|
|
6
|
+
* @summary Defines the structure of metadata attached to properties by validation decorators.
|
|
7
|
+
* This metadata is used during validation to determine validation rules and error messages.
|
|
8
|
+
*
|
|
9
|
+
* @property {any[]} [args] - Optional arguments for the validator
|
|
10
|
+
* @property {string} message - Error message to display when validation fails
|
|
11
|
+
* @property {string[]} [types] - Array of type names that the property can have
|
|
12
|
+
* @property {boolean} async - Indicates whether the validator associated with the decorator performs asynchronous validation logic.
|
|
13
|
+
* Use `true` when the validator returns a Promise, and `false` when the validation is synchronous.
|
|
14
|
+
*
|
|
15
|
+
* @typedef {Object} ValidationMetadata
|
|
16
|
+
* @memberOf module:decorator-validation
|
|
17
|
+
* @category Validation
|
|
18
|
+
*/
|
|
19
|
+
export type ValidationMetadata = {
|
|
20
|
+
[indexer: string]: any;
|
|
21
|
+
args?: any[];
|
|
22
|
+
message: string;
|
|
23
|
+
types?: string[];
|
|
24
|
+
async: boolean;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* @description Type definition for property-level validation decorator configuration
|
|
28
|
+
* @summary Defines the structure that associates a property with its validation decorators.
|
|
29
|
+
* This type is used to track which decorators are applied to a specific property during validation.
|
|
30
|
+
*
|
|
31
|
+
* @property {string|symbol} prop - The property name or symbol that the decorators are applied to
|
|
32
|
+
* @property {ValidationDecoratorDefinition[]} decorators - Array of decorator definitions applied to the property
|
|
33
|
+
*
|
|
34
|
+
* @typedef {Object} ValidationPropertyDecoratorDefinition
|
|
35
|
+
* @memberOf module:decorator-validation
|
|
36
|
+
* @category Validation
|
|
37
|
+
*/
|
|
38
|
+
export type ValidationPropertyDecoratorDefinition = {
|
|
39
|
+
prop: string | symbol;
|
|
40
|
+
decorators: ValidationDecoratorDefinition[];
|
|
41
|
+
async?: boolean;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* @description Type definition for individual validation decorator metadata
|
|
45
|
+
* @summary Extends the base DecoratorMetadata type with validation-specific properties.
|
|
46
|
+
* This type represents the metadata for a single validation decorator applied to a property.
|
|
47
|
+
*
|
|
48
|
+
* @property {ValidationElementDefinition} props - The validation element properties and configuration
|
|
49
|
+
*
|
|
50
|
+
* @typedef {Object} ValidationDecoratorDefinition
|
|
51
|
+
* @memberOf module:decorator-validation
|
|
52
|
+
* @category Validation
|
|
53
|
+
*/
|
|
54
|
+
export type ValidationDecoratorDefinition = {
|
|
55
|
+
props: ValidationElementDefinition;
|
|
56
|
+
async?: boolean;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* @summary Type for a validator element metadata
|
|
60
|
+
* @memberOf module:decorator-validation
|
|
61
|
+
* @category Validation
|
|
62
|
+
*/
|
|
63
|
+
export type ValidationElementDefinition = {
|
|
64
|
+
[indexer: string]: any;
|
|
65
|
+
value?: string | number;
|
|
66
|
+
message: string;
|
|
67
|
+
description: string;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* @summary Type for a model errors
|
|
71
|
+
* @memberOf module:decorator-validation
|
|
72
|
+
* @category Validation
|
|
73
|
+
*/
|
|
74
|
+
export type ModelErrors = Record<string, Record<string, string | undefined>>;
|
|
75
|
+
/**
|
|
76
|
+
* @summary Util type for {@link Validator} configuration
|
|
77
|
+
* @memberOf module:decorator-validation
|
|
78
|
+
* @category Validation
|
|
79
|
+
*/
|
|
80
|
+
export type ValidatorDefinition = {
|
|
81
|
+
validator: Constructor<Validator>;
|
|
82
|
+
validationKey: string;
|
|
83
|
+
save: boolean;
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* @description Interface for a registry that manages validator instances
|
|
87
|
+
* @summary Defines the contract for a registry that stores and retrieves validators.
|
|
88
|
+
* The registry is responsible for maintaining a collection of validators and providing
|
|
89
|
+
* access to them by key.
|
|
90
|
+
*
|
|
91
|
+
* @interface IValidatorRegistry
|
|
92
|
+
* @template T Type of validator, must extend Validator
|
|
93
|
+
* @extends IRegistry<T>
|
|
94
|
+
* @memberOf module:decorator-validation
|
|
95
|
+
* @category Validation
|
|
96
|
+
*/
|
|
97
|
+
export interface IValidatorRegistry<T extends Validator> extends IRegistry<T> {
|
|
98
|
+
/**
|
|
99
|
+
* @description Retrieves custom validation keys defined in the registry
|
|
100
|
+
* @summary Returns a mapping of custom validation keys to their corresponding standard keys.
|
|
101
|
+
* This allows for aliasing validation keys for specific use cases.
|
|
102
|
+
*
|
|
103
|
+
* @return {Record<string, string>} Object mapping custom keys to standard validation keys
|
|
104
|
+
*/
|
|
105
|
+
getCustomKeys(): Record<string, string>;
|
|
106
|
+
/**
|
|
107
|
+
* @description Gets all registered validator keys
|
|
108
|
+
* @summary Returns an array of all validation keys that have registered validators.
|
|
109
|
+
*
|
|
110
|
+
* @return {string[]} Array of registered validator keys
|
|
111
|
+
*/
|
|
112
|
+
getKeys(): string[];
|
|
113
|
+
/**
|
|
114
|
+
* @description Registers one or more validators with the registry
|
|
115
|
+
* @summary Adds validators to the registry, making them available for validation operations.
|
|
116
|
+
* Validators can be provided as instances or as validator definitions.
|
|
117
|
+
*
|
|
118
|
+
* @param {...(T|ValidatorDefinition)} validator - Validator instances or definitions to register
|
|
119
|
+
* @return {void}
|
|
120
|
+
*/
|
|
121
|
+
register<T extends Validator>(...validator: (T | ValidatorDefinition)[]): void;
|
|
122
|
+
/**
|
|
123
|
+
* @description Retrieves a validator by its key
|
|
124
|
+
* @summary Looks up a validator in the registry using its validation key.
|
|
125
|
+
* Returns the validator if found, or undefined if no validator is registered for the key.
|
|
126
|
+
*
|
|
127
|
+
* @param {string} key - The validation key to look up, typically one of the {@link ValidationKeys}
|
|
128
|
+
* @return {T|undefined} The registered validator or undefined if none matches the provided key
|
|
129
|
+
*/
|
|
130
|
+
get<T extends Validator>(key: string): T | undefined;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* @description Base options type for all validators
|
|
134
|
+
* @summary Defines the common properties available to all validators
|
|
135
|
+
* @interface ValidatorOptions
|
|
136
|
+
* @property {string} [message] - Custom error message to display when validation fails
|
|
137
|
+
* @property {boolean} async - Indicates whether the validator associated with the decorator performs asynchronous validation logic.
|
|
138
|
+
* Use `true` when the validator returns a Promise, and `false` when the validation is synchronous.
|
|
139
|
+
* @category Validation
|
|
140
|
+
*/
|
|
141
|
+
export interface ValidatorOptions {
|
|
142
|
+
message?: string;
|
|
143
|
+
description?: string;
|
|
144
|
+
async?: boolean;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* @description URL validation options interface
|
|
148
|
+
* @summary Defines options for URL validation, including allowed URL types
|
|
149
|
+
* @interface URLValidatorOptions
|
|
150
|
+
* @property {(string|string[]|{ name: string })} types - Specifies the allowed URL types or patterns
|
|
151
|
+
* @category Validation
|
|
152
|
+
*/
|
|
153
|
+
export interface URLValidatorOptions extends ValidatorOptions {
|
|
154
|
+
types: string | string[] | {
|
|
155
|
+
name: string;
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* @description Type validation options interface
|
|
160
|
+
* @summary Defines options for type validation, specifying allowed types
|
|
161
|
+
* @interface TypeValidatorOptions
|
|
162
|
+
* @property {(string|string[]|{ name: string })} type - Specifies the allowed data types
|
|
163
|
+
* @memberOf module:decorator-validation
|
|
164
|
+
* @category Validation
|
|
165
|
+
*/
|
|
166
|
+
export interface TypeValidatorOptions extends ValidatorOptions {
|
|
167
|
+
type: string | string[] | {
|
|
168
|
+
name: string;
|
|
169
|
+
};
|
|
170
|
+
customTypes?: (string | (() => string))[];
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* @description Step validation options interface
|
|
174
|
+
* @summary Defines options for step validation, specifying the step increment
|
|
175
|
+
* @interface StepValidatorOptions
|
|
176
|
+
* @property {(number|string)} [ValidationKeys.STEP] - The step value for numerical validation
|
|
177
|
+
* @memberOf module:decorator-validation
|
|
178
|
+
* @category Validation
|
|
179
|
+
*/
|
|
180
|
+
export interface StepValidatorOptions extends ValidatorOptions {
|
|
181
|
+
[ValidationKeys.STEP]: number | string;
|
|
182
|
+
types?: string[];
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* @description Pattern validation options interface
|
|
186
|
+
* @summary Defines options for pattern validation using regular expressions
|
|
187
|
+
* @interface PatternValidatorOptions
|
|
188
|
+
* @property {(RegExp|string)} [ValidationKeys.PATTERN] - The pattern to match against
|
|
189
|
+
* @memberOf module:decorator-validation
|
|
190
|
+
* @category Validation
|
|
191
|
+
*/
|
|
192
|
+
export interface PatternValidatorOptions extends ValidatorOptions {
|
|
193
|
+
[ValidationKeys.PATTERN]?: RegExp | string;
|
|
194
|
+
types?: string[];
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* @description Minimum value validation options interface
|
|
198
|
+
* @summary Defines options for minimum value validation
|
|
199
|
+
* @interface MinValidatorOptions
|
|
200
|
+
* @property {(number|Date|string)} [ValidationKeys.MIN] - The minimum allowed value
|
|
201
|
+
* @memberOf module:decorator-validation
|
|
202
|
+
* @category Validation
|
|
203
|
+
*/
|
|
204
|
+
export interface MinValidatorOptions extends ValidatorOptions {
|
|
205
|
+
[ValidationKeys.MIN]: number | Date | string;
|
|
206
|
+
types?: string[];
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* @description Minimum length validation options interface
|
|
210
|
+
* @summary Defines options for minimum length validation
|
|
211
|
+
* @interface MinLengthValidatorOptions
|
|
212
|
+
* @property {number} [ValidationKeys.MIN_LENGTH] - The minimum allowed length
|
|
213
|
+
* @memberOf module:decorator-validation
|
|
214
|
+
* @category Validation
|
|
215
|
+
*/
|
|
216
|
+
export interface MinLengthValidatorOptions extends ValidatorOptions {
|
|
217
|
+
[ValidationKeys.MIN_LENGTH]: number;
|
|
218
|
+
types?: string[];
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* @description Maximum value validation options interface
|
|
222
|
+
* @summary Defines options for maximum value validation
|
|
223
|
+
* @interface MaxValidatorOptions
|
|
224
|
+
* @property {(number|Date|string)} [ValidationKeys.MAX] - The maximum allowed value
|
|
225
|
+
* @memberOf module:decorator-validation
|
|
226
|
+
* @category Validation
|
|
227
|
+
*/
|
|
228
|
+
export interface MaxValidatorOptions extends ValidatorOptions {
|
|
229
|
+
[ValidationKeys.MAX]: number | Date | string;
|
|
230
|
+
types?: string[];
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* @description Maximum length validation options interface
|
|
234
|
+
* @summary Defines options for maximum length validation
|
|
235
|
+
* @interface MaxLengthValidatorOptions
|
|
236
|
+
* @property {number} [ValidationKeys.MAX_LENGTH] - The maximum allowed length
|
|
237
|
+
* @memberOf module:decorator-validation
|
|
238
|
+
* @category Validation
|
|
239
|
+
*/
|
|
240
|
+
export interface MaxLengthValidatorOptions extends ValidatorOptions {
|
|
241
|
+
[ValidationKeys.MAX_LENGTH]: number;
|
|
242
|
+
types?: string[];
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* @description List validation options interface
|
|
246
|
+
* @summary Defines options for list validation
|
|
247
|
+
* @interface ListValidatorOptions
|
|
248
|
+
* @property {string[]} clazz - Array of allowed class names or types
|
|
249
|
+
* @memberOf module:decorator-validation
|
|
250
|
+
* @category Validation
|
|
251
|
+
*/
|
|
252
|
+
export interface ListValidatorOptions extends ValidatorOptions {
|
|
253
|
+
clazz: (Constructor<any> | (() => Constructor<any>))[];
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* @description Unique validation options interface
|
|
257
|
+
* @summary Defines options for unique validation
|
|
258
|
+
* @interface UniqueValidatorOptions
|
|
259
|
+
* @property {string[]} unique - Array of allowed class names or types
|
|
260
|
+
* @memberOf module:decorator-validation
|
|
261
|
+
* @category Validation
|
|
262
|
+
*/
|
|
263
|
+
export interface UniqueValidatorOptions extends ValidatorOptions {
|
|
264
|
+
[ValidationKeys.UNIQUE]: string[];
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* @description Date validation options interface
|
|
268
|
+
* @summary Defines options for date validation
|
|
269
|
+
* @interface DateValidatorOptions
|
|
270
|
+
* @property {string} [ValidationKeys.FORMAT] - The expected date format pattern
|
|
271
|
+
* @memberOf module:decorator-validation
|
|
272
|
+
* @category Validation
|
|
273
|
+
*/
|
|
274
|
+
export interface DateValidatorOptions extends ValidatorOptions {
|
|
275
|
+
[ValidationKeys.FORMAT]?: string;
|
|
276
|
+
}
|
|
277
|
+
export interface ComparisonValidatorOptions extends ValidatorOptions {
|
|
278
|
+
label?: string;
|
|
279
|
+
}
|
|
280
|
+
export interface EqualsValidatorOptions extends ComparisonValidatorOptions {
|
|
281
|
+
[ValidationKeys.EQUALS]: string;
|
|
282
|
+
}
|
|
283
|
+
export interface DiffValidatorOptions extends ComparisonValidatorOptions {
|
|
284
|
+
[ValidationKeys.DIFF]: string;
|
|
285
|
+
}
|
|
286
|
+
export interface LessThanValidatorOptions extends ComparisonValidatorOptions {
|
|
287
|
+
[ValidationKeys.LESS_THAN]: string;
|
|
288
|
+
}
|
|
289
|
+
export interface LessThanOrEqualValidatorOptions extends ComparisonValidatorOptions {
|
|
290
|
+
[ValidationKeys.LESS_THAN_OR_EQUAL]: string;
|
|
291
|
+
}
|
|
292
|
+
export interface GreaterThanValidatorOptions extends ComparisonValidatorOptions {
|
|
293
|
+
[ValidationKeys.GREATER_THAN]: string;
|
|
294
|
+
}
|
|
295
|
+
export interface GreaterThanOrEqualValidatorOptions extends ComparisonValidatorOptions {
|
|
296
|
+
[ValidationKeys.GREATER_THAN_OR_EQUAL]: string;
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* @description Enum validation options interface
|
|
300
|
+
* @summary Defines options for enum validation
|
|
301
|
+
* @interface EnumValidatorOptions
|
|
302
|
+
* @property {any[] | Record<any, any>} [ValidationKeys.ENUM] - List of values or a record
|
|
303
|
+
* @memberOf module:decorator-validation
|
|
304
|
+
* @category Validation
|
|
305
|
+
*/
|
|
306
|
+
export interface EnumValidatorOptions extends ValidatorOptions {
|
|
307
|
+
[ValidationKeys.ENUM]: any[] | Record<any, any>;
|
|
308
|
+
types?: string[];
|
|
309
|
+
}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/constants/errors.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACU,QAAA,yBAAyB,GAAG;IACvC,YAAY,EACV,sEAAsE;IACxE,6BAA6B,EAC3B,uFAAuF;IACzF,gBAAgB,EACd,0EAA0E;IAC5E,kBAAkB,EAAE,wDAAwD;IAC5E,4BAA4B,EAC1B,mDAAmD;IACrD,4BAA4B,EAC1B,kDAAkD;IACpD,uBAAuB,EAAE,yCAAyC;IAClE,wBAAwB,EACtB,wDAAwD;IAC1D,cAAc,EAAE,yCAAyC;CAC1D,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAAyB;AACzB,mDAA6B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/constants/validation.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACU,QAAA,qBAAqB,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AAEvD;;;;;;GAMG;AACU,QAAA,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC"}
|
package/lib/cjs/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA;;;;;;GAMG;AACH,qDAAgD;AAEhD,wDAA4B;AAC5B,wDAA4B;AAC5B,oDAAwB;AACxB,oDAAwB;AACxB,yDAA6B;AAC7B,oDAAwB;AAExB;;;;;GAKG;AACU,QAAA,OAAO,GAAG,aAAa,CAAC;AAErC;;;;;GAKG;AACU,QAAA,YAAY,GAAG,aAAa,CAAC;AAE1C,qBAAQ,CAAC,eAAe,CAAC,oBAAY,EAAE,eAAO,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Builder.js","sourceRoot":"","sources":["../../../src/model/Builder.ts"],"names":[],"mappings":"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"}
|