@warlock.js/seal 4.0.48 → 4.0.60
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/cjs/config.d.ts +48 -0
- package/cjs/config.d.ts.map +1 -0
- package/cjs/config.js +42 -0
- package/cjs/config.js.map +1 -0
- package/cjs/factory/index.d.ts +3 -0
- package/cjs/factory/index.d.ts.map +1 -0
- package/cjs/factory/validate.d.ts +8 -0
- package/cjs/factory/validate.d.ts.map +1 -0
- package/cjs/factory/validate.js +23 -0
- package/cjs/factory/validate.js.map +1 -0
- package/cjs/factory/validators.d.ts +41 -0
- package/cjs/factory/validators.d.ts.map +1 -0
- package/cjs/factory/validators.js +45 -0
- package/cjs/factory/validators.js.map +1 -0
- package/cjs/helpers/date-helpers.d.ts +16 -0
- package/cjs/helpers/date-helpers.d.ts.map +1 -0
- package/cjs/helpers/date-helpers.js +20 -0
- package/cjs/helpers/date-helpers.js.map +1 -0
- package/cjs/helpers/file.utils.d.ts +8 -0
- package/cjs/helpers/file.utils.d.ts.map +1 -0
- package/cjs/helpers/file.utils.js +29 -0
- package/cjs/helpers/file.utils.js.map +1 -0
- package/cjs/helpers/get-field-value.d.ts +37 -0
- package/cjs/helpers/get-field-value.d.ts.map +1 -0
- package/cjs/helpers/get-field-value.js +40 -0
- package/cjs/helpers/get-field-value.js.map +1 -0
- package/cjs/helpers/index.d.ts +6 -0
- package/cjs/helpers/index.d.ts.map +1 -0
- package/cjs/helpers/is-empty-value.d.ts +2 -0
- package/cjs/helpers/is-empty-value.d.ts.map +1 -0
- package/cjs/helpers/is-empty-value.js +3 -0
- package/cjs/helpers/is-empty-value.js.map +1 -0
- package/cjs/helpers/path-helpers.d.ts +5 -0
- package/cjs/helpers/path-helpers.d.ts.map +1 -0
- package/cjs/helpers/path-helpers.js +8 -0
- package/cjs/helpers/path-helpers.js.map +1 -0
- package/cjs/helpers/validation-helpers.d.ts +4 -0
- package/cjs/helpers/validation-helpers.d.ts.map +1 -0
- package/cjs/helpers/validation-helpers.js +48 -0
- package/cjs/helpers/validation-helpers.js.map +1 -0
- package/cjs/index.d.ts +29 -0
- package/cjs/index.d.ts.map +1 -0
- package/cjs/index.js +1 -63
- package/cjs/index.js.map +1 -1
- package/cjs/mutators/array-mutators.d.ts +12 -0
- package/cjs/mutators/array-mutators.d.ts.map +1 -0
- package/cjs/mutators/array-mutators.js +37 -0
- package/cjs/mutators/array-mutators.js.map +1 -0
- package/cjs/mutators/date-mutators.d.ts +39 -0
- package/cjs/mutators/date-mutators.d.ts.map +1 -0
- package/cjs/mutators/date-mutators.js +120 -0
- package/cjs/mutators/date-mutators.js.map +1 -0
- package/cjs/mutators/index.d.ts +7 -0
- package/cjs/mutators/index.d.ts.map +1 -0
- package/cjs/mutators/number-mutators.d.ts +9 -0
- package/cjs/mutators/number-mutators.d.ts.map +1 -0
- package/cjs/mutators/number-mutators.js +23 -0
- package/cjs/mutators/number-mutators.js.map +1 -0
- package/cjs/mutators/object-mutators.d.ts +8 -0
- package/cjs/mutators/object-mutators.d.ts.map +1 -0
- package/cjs/mutators/object-mutators.js +50 -0
- package/cjs/mutators/object-mutators.js.map +1 -0
- package/cjs/mutators/scalar-mutators.d.ts +3 -0
- package/cjs/mutators/scalar-mutators.d.ts.map +1 -0
- package/cjs/mutators/scalar-mutators.js +6 -0
- package/cjs/mutators/scalar-mutators.js.map +1 -0
- package/cjs/mutators/string-mutators.d.ts +72 -0
- package/cjs/mutators/string-mutators.d.ts.map +1 -0
- package/cjs/mutators/string-mutators.js +193 -0
- package/cjs/mutators/string-mutators.js.map +1 -0
- package/cjs/plugins/index.d.ts +7 -0
- package/cjs/plugins/index.d.ts.map +1 -0
- package/cjs/plugins/plugin-system.d.ts +71 -0
- package/cjs/plugins/plugin-system.d.ts.map +1 -0
- package/cjs/plugins/plugin-system.js +68 -0
- package/cjs/plugins/plugin-system.js.map +1 -0
- package/cjs/rules/array/array-rules.d.ts +12 -0
- package/cjs/rules/array/array-rules.d.ts.map +1 -0
- package/cjs/rules/array/array-rules.js +44 -0
- package/cjs/rules/array/array-rules.js.map +1 -0
- package/cjs/rules/array/index.d.ts +2 -0
- package/cjs/rules/array/index.d.ts.map +1 -0
- package/cjs/rules/color/color-rules.d.ts +30 -0
- package/cjs/rules/color/color-rules.d.ts.map +1 -0
- package/cjs/rules/color/color-rules.js +120 -0
- package/cjs/rules/color/color-rules.js.map +1 -0
- package/cjs/rules/color/index.d.ts +2 -0
- package/cjs/rules/color/index.d.ts.map +1 -0
- package/cjs/rules/common/enum.d.ts +26 -0
- package/cjs/rules/common/enum.d.ts.map +1 -0
- package/cjs/rules/common/enum.js +55 -0
- package/cjs/rules/common/enum.js.map +1 -0
- package/cjs/rules/common/equals-field-rules.d.ts +18 -0
- package/cjs/rules/common/equals-field-rules.d.ts.map +1 -0
- package/cjs/rules/common/equals-field-rules.js +38 -0
- package/cjs/rules/common/equals-field-rules.js.map +1 -0
- package/cjs/rules/common/index.d.ts +5 -0
- package/cjs/rules/common/index.d.ts.map +1 -0
- package/cjs/rules/common/type-rules.d.ts +34 -0
- package/cjs/rules/common/type-rules.d.ts.map +1 -0
- package/cjs/rules/common/type-rules.js +104 -0
- package/cjs/rules/common/type-rules.js.map +1 -0
- package/cjs/rules/common/unknown-key.d.ts +9 -0
- package/cjs/rules/common/unknown-key.d.ts.map +1 -0
- package/cjs/rules/common/unknown-key.js +18 -0
- package/cjs/rules/common/unknown-key.js.map +1 -0
- package/cjs/rules/conditional/forbidden-if-rules.d.ts +54 -0
- package/cjs/rules/conditional/forbidden-if-rules.d.ts.map +1 -0
- package/cjs/rules/conditional/forbidden-if-rules.js +112 -0
- package/cjs/rules/conditional/forbidden-if-rules.js.map +1 -0
- package/cjs/rules/conditional/index.d.ts +10 -0
- package/cjs/rules/conditional/index.d.ts.map +1 -0
- package/cjs/rules/conditional/present-if-rules.d.ts +45 -0
- package/cjs/rules/conditional/present-if-rules.d.ts.map +1 -0
- package/cjs/rules/conditional/present-if-rules.js +98 -0
- package/cjs/rules/conditional/present-if-rules.js.map +1 -0
- package/cjs/rules/conditional/present-unless-rules.d.ts +11 -0
- package/cjs/rules/conditional/present-unless-rules.d.ts.map +1 -0
- package/cjs/rules/conditional/present-unless-rules.js +20 -0
- package/cjs/rules/conditional/present-unless-rules.js.map +1 -0
- package/cjs/rules/conditional/present-with-rules.d.ts +26 -0
- package/cjs/rules/conditional/present-with-rules.d.ts.map +1 -0
- package/cjs/rules/conditional/present-with-rules.js +63 -0
- package/cjs/rules/conditional/present-with-rules.js.map +1 -0
- package/cjs/rules/conditional/present-without-rules.d.ts +26 -0
- package/cjs/rules/conditional/present-without-rules.d.ts.map +1 -0
- package/cjs/rules/conditional/present-without-rules.js +63 -0
- package/cjs/rules/conditional/present-without-rules.js.map +1 -0
- package/cjs/rules/conditional/required-if-rules.d.ts +45 -0
- package/cjs/rules/conditional/required-if-rules.d.ts.map +1 -0
- package/cjs/rules/conditional/required-if-rules.js +98 -0
- package/cjs/rules/conditional/required-if-rules.js.map +1 -0
- package/cjs/rules/conditional/required-unless-rules.d.ts +11 -0
- package/cjs/rules/conditional/required-unless-rules.d.ts.map +1 -0
- package/cjs/rules/conditional/required-unless-rules.js +20 -0
- package/cjs/rules/conditional/required-unless-rules.js.map +1 -0
- package/cjs/rules/conditional/required-with-rules.d.ts +26 -0
- package/cjs/rules/conditional/required-with-rules.d.ts.map +1 -0
- package/cjs/rules/conditional/required-with-rules.js +63 -0
- package/cjs/rules/conditional/required-with-rules.js.map +1 -0
- package/cjs/rules/conditional/required-without-rules.d.ts +26 -0
- package/cjs/rules/conditional/required-without-rules.d.ts.map +1 -0
- package/cjs/rules/conditional/required-without-rules.js +63 -0
- package/cjs/rules/conditional/required-without-rules.js.map +1 -0
- package/cjs/rules/core/equal.d.ts +8 -0
- package/cjs/rules/core/equal.d.ts.map +1 -0
- package/cjs/rules/core/equal.js +13 -0
- package/cjs/rules/core/equal.js.map +1 -0
- package/cjs/rules/core/forbidden.d.ts +6 -0
- package/cjs/rules/core/forbidden.d.ts.map +1 -0
- package/cjs/rules/core/forbidden.js +13 -0
- package/cjs/rules/core/forbidden.js.map +1 -0
- package/cjs/rules/core/index.d.ts +6 -0
- package/cjs/rules/core/index.d.ts.map +1 -0
- package/cjs/rules/core/required.d.ts +11 -0
- package/cjs/rules/core/required.d.ts.map +1 -0
- package/cjs/rules/core/required.js +31 -0
- package/cjs/rules/core/required.js.map +1 -0
- package/cjs/rules/core/union.d.ts +9 -0
- package/cjs/rules/core/union.d.ts.map +1 -0
- package/cjs/rules/core/union.js +40 -0
- package/cjs/rules/core/union.js.map +1 -0
- package/cjs/rules/core/when.d.ts +6 -0
- package/cjs/rules/core/when.d.ts.map +1 -0
- package/cjs/rules/core/when.js +40 -0
- package/cjs/rules/core/when.js.map +1 -0
- package/cjs/rules/date/date-comparison-rules.d.ts +25 -0
- package/cjs/rules/date/date-comparison-rules.d.ts.map +1 -0
- package/cjs/rules/date/date-comparison-rules.js +78 -0
- package/cjs/rules/date/date-comparison-rules.js.map +1 -0
- package/cjs/rules/date/date-day-rules.d.ts +21 -0
- package/cjs/rules/date/date-day-rules.d.ts.map +1 -0
- package/cjs/rules/date/date-day-rules.js +65 -0
- package/cjs/rules/date/date-day-rules.js.map +1 -0
- package/cjs/rules/date/date-field-comparison-rules.d.ts +28 -0
- package/cjs/rules/date/date-field-comparison-rules.d.ts.map +1 -0
- package/cjs/rules/date/date-field-comparison-rules.js +90 -0
- package/cjs/rules/date/date-field-comparison-rules.js.map +1 -0
- package/cjs/rules/date/date-period-rules.d.ts +108 -0
- package/cjs/rules/date/date-period-rules.d.ts.map +1 -0
- package/cjs/rules/date/date-period-rules.js +566 -0
- package/cjs/rules/date/date-period-rules.js.map +1 -0
- package/cjs/rules/date/date-relative-rules.d.ts +20 -0
- package/cjs/rules/date/date-relative-rules.d.ts.map +1 -0
- package/cjs/rules/date/date-relative-rules.js +57 -0
- package/cjs/rules/date/date-relative-rules.js.map +1 -0
- package/cjs/rules/date/date-special-rules.d.ts +20 -0
- package/cjs/rules/date/date-special-rules.d.ts.map +1 -0
- package/cjs/rules/date/date-special-rules.js +72 -0
- package/cjs/rules/date/date-special-rules.js.map +1 -0
- package/cjs/rules/date/date.d.ts +93 -0
- package/cjs/rules/date/date.d.ts.map +1 -0
- package/cjs/rules/date/date.js +279 -0
- package/cjs/rules/date/date.js.map +1 -0
- package/cjs/rules/date/index.d.ts +8 -0
- package/cjs/rules/date/index.d.ts.map +1 -0
- package/cjs/rules/file/dimensions.d.ts +26 -0
- package/cjs/rules/file/dimensions.d.ts.map +1 -0
- package/cjs/rules/file/dimensions.js +56 -0
- package/cjs/rules/file/dimensions.js.map +1 -0
- package/cjs/rules/file/file-size.d.ts +14 -0
- package/cjs/rules/file/file-size.d.ts.map +1 -0
- package/cjs/rules/file/file-size.js +48 -0
- package/cjs/rules/file/file-size.js.map +1 -0
- package/cjs/rules/file/index.d.ts +11 -0
- package/cjs/rules/file/index.d.ts.map +1 -0
- package/cjs/rules/index.d.ts +19 -0
- package/cjs/rules/index.d.ts.map +1 -0
- package/cjs/rules/length/index.d.ts +2 -0
- package/cjs/rules/length/index.d.ts.map +1 -0
- package/cjs/rules/length/length-rules.d.ts +49 -0
- package/cjs/rules/length/length-rules.d.ts.map +1 -0
- package/cjs/rules/length/length-rules.js +116 -0
- package/cjs/rules/length/length-rules.js.map +1 -0
- package/cjs/rules/number/index.d.ts +2 -0
- package/cjs/rules/number/index.d.ts.map +1 -0
- package/cjs/rules/number/number-rules.d.ts +65 -0
- package/cjs/rules/number/number-rules.d.ts.map +1 -0
- package/cjs/rules/number/number-rules.js +234 -0
- package/cjs/rules/number/number-rules.js.map +1 -0
- package/cjs/rules/scalar/accepted-rule.d.ts +39 -0
- package/cjs/rules/scalar/accepted-rule.d.ts.map +1 -0
- package/cjs/rules/scalar/accepted-rule.js +110 -0
- package/cjs/rules/scalar/accepted-rule.js.map +1 -0
- package/cjs/rules/scalar/declined-rule.d.ts +39 -0
- package/cjs/rules/scalar/declined-rule.d.ts.map +1 -0
- package/cjs/rules/scalar/declined-rule.js +110 -0
- package/cjs/rules/scalar/declined-rule.js.map +1 -0
- package/cjs/rules/scalar/index.d.ts +3 -0
- package/cjs/rules/scalar/index.d.ts.map +1 -0
- package/cjs/rules/string/alpha.d.ts +14 -0
- package/cjs/rules/string/alpha.d.ts.map +1 -0
- package/cjs/rules/string/alpha.js +39 -0
- package/cjs/rules/string/alpha.js.map +1 -0
- package/cjs/rules/string/credit-card.d.ts +6 -0
- package/cjs/rules/string/credit-card.d.ts.map +1 -0
- package/cjs/rules/string/credit-card.js +31 -0
- package/cjs/rules/string/credit-card.js.map +1 -0
- package/cjs/rules/string/email.d.ts +6 -0
- package/cjs/rules/string/email.d.ts.map +1 -0
- package/cjs/rules/string/email.js +13 -0
- package/cjs/rules/string/email.js.map +1 -0
- package/cjs/rules/string/index.d.ts +17 -0
- package/cjs/rules/string/index.d.ts.map +1 -0
- package/cjs/rules/string/ip.d.ts +14 -0
- package/cjs/rules/string/ip.d.ts.map +1 -0
- package/cjs/rules/string/ip.js +39 -0
- package/cjs/rules/string/ip.js.map +1 -0
- package/cjs/rules/string/matches.d.ts +8 -0
- package/cjs/rules/string/matches.d.ts.map +1 -0
- package/cjs/rules/string/matches.js +14 -0
- package/cjs/rules/string/matches.js.map +1 -0
- package/cjs/rules/string/pattern.d.ts +8 -0
- package/cjs/rules/string/pattern.d.ts.map +1 -0
- package/cjs/rules/string/pattern.js +13 -0
- package/cjs/rules/string/pattern.js.map +1 -0
- package/cjs/rules/string/string-comparison.d.ts +26 -0
- package/cjs/rules/string/string-comparison.d.ts.map +1 -0
- package/cjs/rules/string/string-comparison.js +52 -0
- package/cjs/rules/string/string-comparison.js.map +1 -0
- package/cjs/rules/string/strong-password-rule.d.ts +14 -0
- package/cjs/rules/string/strong-password-rule.d.ts.map +1 -0
- package/cjs/rules/string/strong-password-rule.js +38 -0
- package/cjs/rules/string/strong-password-rule.js.map +1 -0
- package/cjs/rules/string/url.d.ts +6 -0
- package/cjs/rules/string/url.d.ts.map +1 -0
- package/cjs/rules/string/url.js +16 -0
- package/cjs/rules/string/url.js.map +1 -0
- package/cjs/rules/string/without-whitespace.d.ts +6 -0
- package/cjs/rules/string/without-whitespace.d.ts.map +1 -0
- package/cjs/rules/string/without-whitespace.js +13 -0
- package/cjs/rules/string/without-whitespace.js.map +1 -0
- package/cjs/types/conditional-types.d.ts +15 -0
- package/cjs/types/conditional-types.d.ts.map +1 -0
- package/cjs/types/context-types.d.ts +48 -0
- package/cjs/types/context-types.d.ts.map +1 -0
- package/cjs/types/data-transformer-types.d.ts +25 -0
- package/cjs/types/data-transformer-types.d.ts.map +1 -0
- package/cjs/types/date-types.d.ts +9 -0
- package/cjs/types/date-types.d.ts.map +1 -0
- package/cjs/types/date-types.js +12 -0
- package/cjs/types/date-types.js.map +1 -0
- package/cjs/types/file.types.d.ts +5 -0
- package/cjs/types/file.types.d.ts.map +1 -0
- package/cjs/types/index.d.ts +11 -0
- package/cjs/types/index.d.ts.map +1 -0
- package/cjs/types/inference-types.d.ts +27 -0
- package/cjs/types/inference-types.d.ts.map +1 -0
- package/cjs/types/mutator-types.d.ts +27 -0
- package/cjs/types/mutator-types.d.ts.map +1 -0
- package/cjs/types/result-types.d.ts +19 -0
- package/cjs/types/result-types.d.ts.map +1 -0
- package/cjs/types/rule-types.d.ts +54 -0
- package/cjs/types/rule-types.d.ts.map +1 -0
- package/cjs/types/schema-types.d.ts +6 -0
- package/cjs/types/schema-types.d.ts.map +1 -0
- package/cjs/validators/any-validator.d.ts +7 -0
- package/cjs/validators/any-validator.d.ts.map +1 -0
- package/cjs/validators/any-validator.js +5 -0
- package/cjs/validators/any-validator.js.map +1 -0
- package/cjs/validators/array-validator.d.ts +59 -0
- package/cjs/validators/array-validator.d.ts.map +1 -0
- package/cjs/validators/array-validator.js +134 -0
- package/cjs/validators/array-validator.js.map +1 -0
- package/cjs/validators/base-validator.d.ts +610 -0
- package/cjs/validators/base-validator.d.ts.map +1 -0
- package/cjs/validators/base-validator.js +1160 -0
- package/cjs/validators/base-validator.js.map +1 -0
- package/cjs/validators/boolean-validator.d.ts +47 -0
- package/cjs/validators/boolean-validator.d.ts.map +1 -0
- package/cjs/validators/boolean-validator.js +54 -0
- package/cjs/validators/boolean-validator.js.map +1 -0
- package/cjs/validators/computed-validator.d.ts +64 -0
- package/cjs/validators/computed-validator.d.ts.map +1 -0
- package/cjs/validators/computed-validator.js +109 -0
- package/cjs/validators/computed-validator.js.map +1 -0
- package/cjs/validators/date-validator.d.ts +307 -0
- package/cjs/validators/date-validator.d.ts.map +1 -0
- package/cjs/validators/date-validator.js +645 -0
- package/cjs/validators/date-validator.js.map +1 -0
- package/cjs/validators/float-validator.d.ts +8 -0
- package/cjs/validators/float-validator.d.ts.map +1 -0
- package/cjs/validators/float-validator.js +9 -0
- package/cjs/validators/float-validator.js.map +1 -0
- package/cjs/validators/index.d.ts +26 -0
- package/cjs/validators/index.d.ts.map +1 -0
- package/cjs/validators/int-validator.d.ts +8 -0
- package/cjs/validators/int-validator.d.ts.map +1 -0
- package/cjs/validators/int-validator.js +9 -0
- package/cjs/validators/int-validator.js.map +1 -0
- package/cjs/validators/managed-validator.d.ts +38 -0
- package/cjs/validators/managed-validator.d.ts.map +1 -0
- package/cjs/validators/managed-validator.js +34 -0
- package/cjs/validators/managed-validator.js.map +1 -0
- package/cjs/validators/number-validator.d.ts +113 -0
- package/cjs/validators/number-validator.d.ts.map +1 -0
- package/cjs/validators/number-validator.js +192 -0
- package/cjs/validators/number-validator.js.map +1 -0
- package/cjs/validators/numeric-validator.d.ts +15 -0
- package/cjs/validators/numeric-validator.d.ts.map +1 -0
- package/cjs/validators/numeric-validator.js +18 -0
- package/cjs/validators/numeric-validator.js.map +1 -0
- package/cjs/validators/object-validator.d.ts +187 -0
- package/cjs/validators/object-validator.d.ts.map +1 -0
- package/cjs/validators/object-validator.js +416 -0
- package/cjs/validators/object-validator.js.map +1 -0
- package/cjs/validators/record-validator.d.ts +33 -0
- package/cjs/validators/record-validator.d.ts.map +1 -0
- package/cjs/validators/record-validator.js +70 -0
- package/cjs/validators/record-validator.js.map +1 -0
- package/cjs/validators/scalar-validator.d.ts +82 -0
- package/cjs/validators/scalar-validator.d.ts.map +1 -0
- package/cjs/validators/scalar-validator.js +160 -0
- package/cjs/validators/scalar-validator.js.map +1 -0
- package/cjs/validators/string-validator.d.ts +191 -0
- package/cjs/validators/string-validator.d.ts.map +1 -0
- package/cjs/validators/string-validator.js +410 -0
- package/cjs/validators/string-validator.js.map +1 -0
- package/cjs/validators/tuple-validator.d.ts +34 -0
- package/cjs/validators/tuple-validator.d.ts.map +1 -0
- package/cjs/validators/tuple-validator.js +79 -0
- package/cjs/validators/tuple-validator.js.map +1 -0
- package/cjs/validators/union-validator.d.ts +42 -0
- package/cjs/validators/union-validator.d.ts.map +1 -0
- package/cjs/validators/union-validator.js +44 -0
- package/cjs/validators/union-validator.js.map +1 -0
- package/esm/config.d.ts +48 -0
- package/esm/config.d.ts.map +1 -0
- package/esm/config.js +42 -0
- package/esm/config.js.map +1 -0
- package/esm/factory/index.d.ts +3 -0
- package/esm/factory/index.d.ts.map +1 -0
- package/esm/factory/validate.d.ts +8 -0
- package/esm/factory/validate.d.ts.map +1 -0
- package/esm/factory/validate.js +23 -0
- package/esm/factory/validate.js.map +1 -0
- package/esm/factory/validators.d.ts +41 -0
- package/esm/factory/validators.d.ts.map +1 -0
- package/esm/factory/validators.js +45 -0
- package/esm/factory/validators.js.map +1 -0
- package/esm/helpers/date-helpers.d.ts +16 -0
- package/esm/helpers/date-helpers.d.ts.map +1 -0
- package/esm/helpers/date-helpers.js +20 -0
- package/esm/helpers/date-helpers.js.map +1 -0
- package/esm/helpers/file.utils.d.ts +8 -0
- package/esm/helpers/file.utils.d.ts.map +1 -0
- package/esm/helpers/file.utils.js +29 -0
- package/esm/helpers/file.utils.js.map +1 -0
- package/esm/helpers/get-field-value.d.ts +37 -0
- package/esm/helpers/get-field-value.d.ts.map +1 -0
- package/esm/helpers/get-field-value.js +40 -0
- package/esm/helpers/get-field-value.js.map +1 -0
- package/esm/helpers/index.d.ts +6 -0
- package/esm/helpers/index.d.ts.map +1 -0
- package/esm/helpers/is-empty-value.d.ts +2 -0
- package/esm/helpers/is-empty-value.d.ts.map +1 -0
- package/esm/helpers/is-empty-value.js +3 -0
- package/esm/helpers/is-empty-value.js.map +1 -0
- package/esm/helpers/path-helpers.d.ts +5 -0
- package/esm/helpers/path-helpers.d.ts.map +1 -0
- package/esm/helpers/path-helpers.js +8 -0
- package/esm/helpers/path-helpers.js.map +1 -0
- package/esm/helpers/validation-helpers.d.ts +4 -0
- package/esm/helpers/validation-helpers.d.ts.map +1 -0
- package/esm/helpers/validation-helpers.js +48 -0
- package/esm/helpers/validation-helpers.js.map +1 -0
- package/esm/index.d.ts +29 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +1 -10
- package/esm/index.js.map +1 -1
- package/esm/mutators/array-mutators.d.ts +12 -0
- package/esm/mutators/array-mutators.d.ts.map +1 -0
- package/esm/mutators/array-mutators.js +37 -0
- package/esm/mutators/array-mutators.js.map +1 -0
- package/esm/mutators/date-mutators.d.ts +39 -0
- package/esm/mutators/date-mutators.d.ts.map +1 -0
- package/esm/mutators/date-mutators.js +120 -0
- package/esm/mutators/date-mutators.js.map +1 -0
- package/esm/mutators/index.d.ts +7 -0
- package/esm/mutators/index.d.ts.map +1 -0
- package/esm/mutators/number-mutators.d.ts +9 -0
- package/esm/mutators/number-mutators.d.ts.map +1 -0
- package/esm/mutators/number-mutators.js +23 -0
- package/esm/mutators/number-mutators.js.map +1 -0
- package/esm/mutators/object-mutators.d.ts +8 -0
- package/esm/mutators/object-mutators.d.ts.map +1 -0
- package/esm/mutators/object-mutators.js +50 -0
- package/esm/mutators/object-mutators.js.map +1 -0
- package/esm/mutators/scalar-mutators.d.ts +3 -0
- package/esm/mutators/scalar-mutators.d.ts.map +1 -0
- package/esm/mutators/scalar-mutators.js +6 -0
- package/esm/mutators/scalar-mutators.js.map +1 -0
- package/esm/mutators/string-mutators.d.ts +72 -0
- package/esm/mutators/string-mutators.d.ts.map +1 -0
- package/esm/mutators/string-mutators.js +193 -0
- package/esm/mutators/string-mutators.js.map +1 -0
- package/esm/plugins/index.d.ts +7 -0
- package/esm/plugins/index.d.ts.map +1 -0
- package/esm/plugins/plugin-system.d.ts +71 -0
- package/esm/plugins/plugin-system.d.ts.map +1 -0
- package/esm/plugins/plugin-system.js +68 -0
- package/esm/plugins/plugin-system.js.map +1 -0
- package/esm/rules/array/array-rules.d.ts +12 -0
- package/esm/rules/array/array-rules.d.ts.map +1 -0
- package/esm/rules/array/array-rules.js +44 -0
- package/esm/rules/array/array-rules.js.map +1 -0
- package/esm/rules/array/index.d.ts +2 -0
- package/esm/rules/array/index.d.ts.map +1 -0
- package/esm/rules/color/color-rules.d.ts +30 -0
- package/esm/rules/color/color-rules.d.ts.map +1 -0
- package/esm/rules/color/color-rules.js +120 -0
- package/esm/rules/color/color-rules.js.map +1 -0
- package/esm/rules/color/index.d.ts +2 -0
- package/esm/rules/color/index.d.ts.map +1 -0
- package/esm/rules/common/enum.d.ts +26 -0
- package/esm/rules/common/enum.d.ts.map +1 -0
- package/esm/rules/common/enum.js +55 -0
- package/esm/rules/common/enum.js.map +1 -0
- package/esm/rules/common/equals-field-rules.d.ts +18 -0
- package/esm/rules/common/equals-field-rules.d.ts.map +1 -0
- package/esm/rules/common/equals-field-rules.js +38 -0
- package/esm/rules/common/equals-field-rules.js.map +1 -0
- package/esm/rules/common/index.d.ts +5 -0
- package/esm/rules/common/index.d.ts.map +1 -0
- package/esm/rules/common/type-rules.d.ts +34 -0
- package/esm/rules/common/type-rules.d.ts.map +1 -0
- package/esm/rules/common/type-rules.js +104 -0
- package/esm/rules/common/type-rules.js.map +1 -0
- package/esm/rules/common/unknown-key.d.ts +9 -0
- package/esm/rules/common/unknown-key.d.ts.map +1 -0
- package/esm/rules/common/unknown-key.js +18 -0
- package/esm/rules/common/unknown-key.js.map +1 -0
- package/esm/rules/conditional/forbidden-if-rules.d.ts +54 -0
- package/esm/rules/conditional/forbidden-if-rules.d.ts.map +1 -0
- package/esm/rules/conditional/forbidden-if-rules.js +112 -0
- package/esm/rules/conditional/forbidden-if-rules.js.map +1 -0
- package/esm/rules/conditional/index.d.ts +10 -0
- package/esm/rules/conditional/index.d.ts.map +1 -0
- package/esm/rules/conditional/present-if-rules.d.ts +45 -0
- package/esm/rules/conditional/present-if-rules.d.ts.map +1 -0
- package/esm/rules/conditional/present-if-rules.js +98 -0
- package/esm/rules/conditional/present-if-rules.js.map +1 -0
- package/esm/rules/conditional/present-unless-rules.d.ts +11 -0
- package/esm/rules/conditional/present-unless-rules.d.ts.map +1 -0
- package/esm/rules/conditional/present-unless-rules.js +20 -0
- package/esm/rules/conditional/present-unless-rules.js.map +1 -0
- package/esm/rules/conditional/present-with-rules.d.ts +26 -0
- package/esm/rules/conditional/present-with-rules.d.ts.map +1 -0
- package/esm/rules/conditional/present-with-rules.js +63 -0
- package/esm/rules/conditional/present-with-rules.js.map +1 -0
- package/esm/rules/conditional/present-without-rules.d.ts +26 -0
- package/esm/rules/conditional/present-without-rules.d.ts.map +1 -0
- package/esm/rules/conditional/present-without-rules.js +63 -0
- package/esm/rules/conditional/present-without-rules.js.map +1 -0
- package/esm/rules/conditional/required-if-rules.d.ts +45 -0
- package/esm/rules/conditional/required-if-rules.d.ts.map +1 -0
- package/esm/rules/conditional/required-if-rules.js +98 -0
- package/esm/rules/conditional/required-if-rules.js.map +1 -0
- package/esm/rules/conditional/required-unless-rules.d.ts +11 -0
- package/esm/rules/conditional/required-unless-rules.d.ts.map +1 -0
- package/esm/rules/conditional/required-unless-rules.js +20 -0
- package/esm/rules/conditional/required-unless-rules.js.map +1 -0
- package/esm/rules/conditional/required-with-rules.d.ts +26 -0
- package/esm/rules/conditional/required-with-rules.d.ts.map +1 -0
- package/esm/rules/conditional/required-with-rules.js +63 -0
- package/esm/rules/conditional/required-with-rules.js.map +1 -0
- package/esm/rules/conditional/required-without-rules.d.ts +26 -0
- package/esm/rules/conditional/required-without-rules.d.ts.map +1 -0
- package/esm/rules/conditional/required-without-rules.js +63 -0
- package/esm/rules/conditional/required-without-rules.js.map +1 -0
- package/esm/rules/core/equal.d.ts +8 -0
- package/esm/rules/core/equal.d.ts.map +1 -0
- package/esm/rules/core/equal.js +13 -0
- package/esm/rules/core/equal.js.map +1 -0
- package/esm/rules/core/forbidden.d.ts +6 -0
- package/esm/rules/core/forbidden.d.ts.map +1 -0
- package/esm/rules/core/forbidden.js +13 -0
- package/esm/rules/core/forbidden.js.map +1 -0
- package/esm/rules/core/index.d.ts +6 -0
- package/esm/rules/core/index.d.ts.map +1 -0
- package/esm/rules/core/required.d.ts +11 -0
- package/esm/rules/core/required.d.ts.map +1 -0
- package/esm/rules/core/required.js +31 -0
- package/esm/rules/core/required.js.map +1 -0
- package/esm/rules/core/union.d.ts +9 -0
- package/esm/rules/core/union.d.ts.map +1 -0
- package/esm/rules/core/union.js +40 -0
- package/esm/rules/core/union.js.map +1 -0
- package/esm/rules/core/when.d.ts +6 -0
- package/esm/rules/core/when.d.ts.map +1 -0
- package/esm/rules/core/when.js +40 -0
- package/esm/rules/core/when.js.map +1 -0
- package/esm/rules/date/date-comparison-rules.d.ts +25 -0
- package/esm/rules/date/date-comparison-rules.d.ts.map +1 -0
- package/esm/rules/date/date-comparison-rules.js +78 -0
- package/esm/rules/date/date-comparison-rules.js.map +1 -0
- package/esm/rules/date/date-day-rules.d.ts +21 -0
- package/esm/rules/date/date-day-rules.d.ts.map +1 -0
- package/esm/rules/date/date-day-rules.js +65 -0
- package/esm/rules/date/date-day-rules.js.map +1 -0
- package/esm/rules/date/date-field-comparison-rules.d.ts +28 -0
- package/esm/rules/date/date-field-comparison-rules.d.ts.map +1 -0
- package/esm/rules/date/date-field-comparison-rules.js +90 -0
- package/esm/rules/date/date-field-comparison-rules.js.map +1 -0
- package/esm/rules/date/date-period-rules.d.ts +108 -0
- package/esm/rules/date/date-period-rules.d.ts.map +1 -0
- package/esm/rules/date/date-period-rules.js +566 -0
- package/esm/rules/date/date-period-rules.js.map +1 -0
- package/esm/rules/date/date-relative-rules.d.ts +20 -0
- package/esm/rules/date/date-relative-rules.d.ts.map +1 -0
- package/esm/rules/date/date-relative-rules.js +57 -0
- package/esm/rules/date/date-relative-rules.js.map +1 -0
- package/esm/rules/date/date-special-rules.d.ts +20 -0
- package/esm/rules/date/date-special-rules.d.ts.map +1 -0
- package/esm/rules/date/date-special-rules.js +72 -0
- package/esm/rules/date/date-special-rules.js.map +1 -0
- package/esm/rules/date/date.d.ts +93 -0
- package/esm/rules/date/date.d.ts.map +1 -0
- package/esm/rules/date/date.js +279 -0
- package/esm/rules/date/date.js.map +1 -0
- package/esm/rules/date/index.d.ts +8 -0
- package/esm/rules/date/index.d.ts.map +1 -0
- package/esm/rules/file/dimensions.d.ts +26 -0
- package/esm/rules/file/dimensions.d.ts.map +1 -0
- package/esm/rules/file/dimensions.js +56 -0
- package/esm/rules/file/dimensions.js.map +1 -0
- package/esm/rules/file/file-size.d.ts +14 -0
- package/esm/rules/file/file-size.d.ts.map +1 -0
- package/esm/rules/file/file-size.js +48 -0
- package/esm/rules/file/file-size.js.map +1 -0
- package/esm/rules/file/index.d.ts +11 -0
- package/esm/rules/file/index.d.ts.map +1 -0
- package/esm/rules/index.d.ts +19 -0
- package/esm/rules/index.d.ts.map +1 -0
- package/esm/rules/length/index.d.ts +2 -0
- package/esm/rules/length/index.d.ts.map +1 -0
- package/esm/rules/length/length-rules.d.ts +49 -0
- package/esm/rules/length/length-rules.d.ts.map +1 -0
- package/esm/rules/length/length-rules.js +116 -0
- package/esm/rules/length/length-rules.js.map +1 -0
- package/esm/rules/number/index.d.ts +2 -0
- package/esm/rules/number/index.d.ts.map +1 -0
- package/esm/rules/number/number-rules.d.ts +65 -0
- package/esm/rules/number/number-rules.d.ts.map +1 -0
- package/esm/rules/number/number-rules.js +234 -0
- package/esm/rules/number/number-rules.js.map +1 -0
- package/esm/rules/scalar/accepted-rule.d.ts +39 -0
- package/esm/rules/scalar/accepted-rule.d.ts.map +1 -0
- package/esm/rules/scalar/accepted-rule.js +110 -0
- package/esm/rules/scalar/accepted-rule.js.map +1 -0
- package/esm/rules/scalar/declined-rule.d.ts +39 -0
- package/esm/rules/scalar/declined-rule.d.ts.map +1 -0
- package/esm/rules/scalar/declined-rule.js +110 -0
- package/esm/rules/scalar/declined-rule.js.map +1 -0
- package/esm/rules/scalar/index.d.ts +3 -0
- package/esm/rules/scalar/index.d.ts.map +1 -0
- package/esm/rules/string/alpha.d.ts +14 -0
- package/esm/rules/string/alpha.d.ts.map +1 -0
- package/esm/rules/string/alpha.js +39 -0
- package/esm/rules/string/alpha.js.map +1 -0
- package/esm/rules/string/credit-card.d.ts +6 -0
- package/esm/rules/string/credit-card.d.ts.map +1 -0
- package/esm/rules/string/credit-card.js +31 -0
- package/esm/rules/string/credit-card.js.map +1 -0
- package/esm/rules/string/email.d.ts +6 -0
- package/esm/rules/string/email.d.ts.map +1 -0
- package/esm/rules/string/email.js +13 -0
- package/esm/rules/string/email.js.map +1 -0
- package/esm/rules/string/index.d.ts +17 -0
- package/esm/rules/string/index.d.ts.map +1 -0
- package/esm/rules/string/ip.d.ts +14 -0
- package/esm/rules/string/ip.d.ts.map +1 -0
- package/esm/rules/string/ip.js +39 -0
- package/esm/rules/string/ip.js.map +1 -0
- package/esm/rules/string/matches.d.ts +8 -0
- package/esm/rules/string/matches.d.ts.map +1 -0
- package/esm/rules/string/matches.js +14 -0
- package/esm/rules/string/matches.js.map +1 -0
- package/esm/rules/string/pattern.d.ts +8 -0
- package/esm/rules/string/pattern.d.ts.map +1 -0
- package/esm/rules/string/pattern.js +13 -0
- package/esm/rules/string/pattern.js.map +1 -0
- package/esm/rules/string/string-comparison.d.ts +26 -0
- package/esm/rules/string/string-comparison.d.ts.map +1 -0
- package/esm/rules/string/string-comparison.js +52 -0
- package/esm/rules/string/string-comparison.js.map +1 -0
- package/esm/rules/string/strong-password-rule.d.ts +14 -0
- package/esm/rules/string/strong-password-rule.d.ts.map +1 -0
- package/esm/rules/string/strong-password-rule.js +38 -0
- package/esm/rules/string/strong-password-rule.js.map +1 -0
- package/esm/rules/string/url.d.ts +6 -0
- package/esm/rules/string/url.d.ts.map +1 -0
- package/esm/rules/string/url.js +16 -0
- package/esm/rules/string/url.js.map +1 -0
- package/esm/rules/string/without-whitespace.d.ts +6 -0
- package/esm/rules/string/without-whitespace.d.ts.map +1 -0
- package/esm/rules/string/without-whitespace.js +13 -0
- package/esm/rules/string/without-whitespace.js.map +1 -0
- package/esm/types/conditional-types.d.ts +15 -0
- package/esm/types/conditional-types.d.ts.map +1 -0
- package/esm/types/context-types.d.ts +48 -0
- package/esm/types/context-types.d.ts.map +1 -0
- package/esm/types/data-transformer-types.d.ts +25 -0
- package/esm/types/data-transformer-types.d.ts.map +1 -0
- package/esm/types/date-types.d.ts +9 -0
- package/esm/types/date-types.d.ts.map +1 -0
- package/esm/types/date-types.js +12 -0
- package/esm/types/date-types.js.map +1 -0
- package/esm/types/file.types.d.ts +5 -0
- package/esm/types/file.types.d.ts.map +1 -0
- package/esm/types/index.d.ts +11 -0
- package/esm/types/index.d.ts.map +1 -0
- package/esm/types/inference-types.d.ts +27 -0
- package/esm/types/inference-types.d.ts.map +1 -0
- package/esm/types/mutator-types.d.ts +27 -0
- package/esm/types/mutator-types.d.ts.map +1 -0
- package/esm/types/result-types.d.ts +19 -0
- package/esm/types/result-types.d.ts.map +1 -0
- package/esm/types/rule-types.d.ts +54 -0
- package/esm/types/rule-types.d.ts.map +1 -0
- package/esm/types/schema-types.d.ts +6 -0
- package/esm/types/schema-types.d.ts.map +1 -0
- package/esm/validators/any-validator.d.ts +7 -0
- package/esm/validators/any-validator.d.ts.map +1 -0
- package/esm/validators/any-validator.js +5 -0
- package/esm/validators/any-validator.js.map +1 -0
- package/esm/validators/array-validator.d.ts +59 -0
- package/esm/validators/array-validator.d.ts.map +1 -0
- package/esm/validators/array-validator.js +134 -0
- package/esm/validators/array-validator.js.map +1 -0
- package/esm/validators/base-validator.d.ts +610 -0
- package/esm/validators/base-validator.d.ts.map +1 -0
- package/esm/validators/base-validator.js +1160 -0
- package/esm/validators/base-validator.js.map +1 -0
- package/esm/validators/boolean-validator.d.ts +47 -0
- package/esm/validators/boolean-validator.d.ts.map +1 -0
- package/esm/validators/boolean-validator.js +54 -0
- package/esm/validators/boolean-validator.js.map +1 -0
- package/esm/validators/computed-validator.d.ts +64 -0
- package/esm/validators/computed-validator.d.ts.map +1 -0
- package/esm/validators/computed-validator.js +109 -0
- package/esm/validators/computed-validator.js.map +1 -0
- package/esm/validators/date-validator.d.ts +307 -0
- package/esm/validators/date-validator.d.ts.map +1 -0
- package/esm/validators/date-validator.js +645 -0
- package/esm/validators/date-validator.js.map +1 -0
- package/esm/validators/float-validator.d.ts +8 -0
- package/esm/validators/float-validator.d.ts.map +1 -0
- package/esm/validators/float-validator.js +9 -0
- package/esm/validators/float-validator.js.map +1 -0
- package/esm/validators/index.d.ts +26 -0
- package/esm/validators/index.d.ts.map +1 -0
- package/esm/validators/int-validator.d.ts +8 -0
- package/esm/validators/int-validator.d.ts.map +1 -0
- package/esm/validators/int-validator.js +9 -0
- package/esm/validators/int-validator.js.map +1 -0
- package/esm/validators/managed-validator.d.ts +38 -0
- package/esm/validators/managed-validator.d.ts.map +1 -0
- package/esm/validators/managed-validator.js +34 -0
- package/esm/validators/managed-validator.js.map +1 -0
- package/esm/validators/number-validator.d.ts +113 -0
- package/esm/validators/number-validator.d.ts.map +1 -0
- package/esm/validators/number-validator.js +192 -0
- package/esm/validators/number-validator.js.map +1 -0
- package/esm/validators/numeric-validator.d.ts +15 -0
- package/esm/validators/numeric-validator.d.ts.map +1 -0
- package/esm/validators/numeric-validator.js +18 -0
- package/esm/validators/numeric-validator.js.map +1 -0
- package/esm/validators/object-validator.d.ts +187 -0
- package/esm/validators/object-validator.d.ts.map +1 -0
- package/esm/validators/object-validator.js +416 -0
- package/esm/validators/object-validator.js.map +1 -0
- package/esm/validators/record-validator.d.ts +33 -0
- package/esm/validators/record-validator.d.ts.map +1 -0
- package/esm/validators/record-validator.js +70 -0
- package/esm/validators/record-validator.js.map +1 -0
- package/esm/validators/scalar-validator.d.ts +82 -0
- package/esm/validators/scalar-validator.d.ts.map +1 -0
- package/esm/validators/scalar-validator.js +160 -0
- package/esm/validators/scalar-validator.js.map +1 -0
- package/esm/validators/string-validator.d.ts +191 -0
- package/esm/validators/string-validator.d.ts.map +1 -0
- package/esm/validators/string-validator.js +410 -0
- package/esm/validators/string-validator.js.map +1 -0
- package/esm/validators/tuple-validator.d.ts +34 -0
- package/esm/validators/tuple-validator.d.ts.map +1 -0
- package/esm/validators/tuple-validator.js +79 -0
- package/esm/validators/tuple-validator.js.map +1 -0
- package/esm/validators/union-validator.d.ts +42 -0
- package/esm/validators/union-validator.d.ts.map +1 -0
- package/esm/validators/union-validator.js +44 -0
- package/esm/validators/union-validator.js.map +1 -0
- package/package.json +47 -36
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
'use strict';var reinforcements=require('@mongez/reinforcements'),getFieldValue=require('../../helpers/get-field-value.js'),validationHelpers=require('../../helpers/validation-helpers.js'),isEmptyValue=require('../../helpers/is-empty-value.js');/**
|
|
2
|
+
* Required with rule - field is required if another field is present
|
|
3
|
+
* Supports both global and sibling scope
|
|
4
|
+
*/
|
|
5
|
+
const requiredWithRule = {
|
|
6
|
+
name: "requiredWith",
|
|
7
|
+
description: "The field is required if another field is present",
|
|
8
|
+
sortOrder: -2,
|
|
9
|
+
requiresValue: false,
|
|
10
|
+
defaultErrorMessage: "The :input is required",
|
|
11
|
+
async validate(value, context) {
|
|
12
|
+
const fieldValue = getFieldValue.getFieldValue(this, context);
|
|
13
|
+
// Field is required if the other field is present
|
|
14
|
+
if (isEmptyValue.isEmptyValue(value) && fieldValue !== undefined) {
|
|
15
|
+
return validationHelpers.invalidRule(this, context);
|
|
16
|
+
}
|
|
17
|
+
return validationHelpers.VALID_RULE;
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Required with all rule - field is required if all specified fields are present
|
|
22
|
+
* Supports both global and sibling scope
|
|
23
|
+
*/
|
|
24
|
+
const requiredWithAllRule = {
|
|
25
|
+
name: "requiredWithAll",
|
|
26
|
+
description: "The field is required if all specified fields are present",
|
|
27
|
+
sortOrder: -2,
|
|
28
|
+
requiresValue: false,
|
|
29
|
+
defaultErrorMessage: "The :input is required",
|
|
30
|
+
async validate(value, context) {
|
|
31
|
+
const { fields, scope = "global" } = this.context.options;
|
|
32
|
+
const source = scope === "sibling" ? context.parent : context.allValues;
|
|
33
|
+
// Check if all fields are present
|
|
34
|
+
const allPresent = fields.every((field) => reinforcements.get(source, field) !== undefined);
|
|
35
|
+
// Field is required if all other fields are present
|
|
36
|
+
if (isEmptyValue.isEmptyValue(value) && allPresent) {
|
|
37
|
+
return validationHelpers.invalidRule(this, context);
|
|
38
|
+
}
|
|
39
|
+
return validationHelpers.VALID_RULE;
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Required with any rule - field is required if any of the specified fields is present
|
|
44
|
+
* Supports both global and sibling scope
|
|
45
|
+
*/
|
|
46
|
+
const requiredWithAnyRule = {
|
|
47
|
+
name: "requiredWithAny",
|
|
48
|
+
description: "The field is required if any of the specified fields is present",
|
|
49
|
+
sortOrder: -2,
|
|
50
|
+
requiresValue: false,
|
|
51
|
+
defaultErrorMessage: "The :input is required",
|
|
52
|
+
async validate(value, context) {
|
|
53
|
+
const { fields, scope = "global" } = this.context.options;
|
|
54
|
+
const source = scope === "sibling" ? context.parent : context.allValues;
|
|
55
|
+
// Check if any field is present
|
|
56
|
+
const anyPresent = fields.some((field) => reinforcements.get(source, field) !== undefined);
|
|
57
|
+
// Field is required if any other field is present
|
|
58
|
+
if (isEmptyValue.isEmptyValue(value) && anyPresent) {
|
|
59
|
+
return validationHelpers.invalidRule(this, context);
|
|
60
|
+
}
|
|
61
|
+
return validationHelpers.VALID_RULE;
|
|
62
|
+
},
|
|
63
|
+
};exports.requiredWithAllRule=requiredWithAllRule;exports.requiredWithAnyRule=requiredWithAnyRule;exports.requiredWithRule=requiredWithRule;//# sourceMappingURL=required-with-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"required-with-rules.js","sources":["../../../src/rules/conditional/required-with-rules.ts"],"sourcesContent":[null],"names":["getFieldValue","isEmptyValue","invalidRule","VALID_RULE","get"],"mappings":"qPAKA;;;AAGG;AACU,MAAA,gBAAgB,GAGxB;AACH,IAAA,IAAI,EAAE,cAAc;AACpB,IAAA,WAAW,EAAE,mDAAmD;IAChE,SAAS,EAAE,CAAC,CAAC;AACb,IAAA,aAAa,EAAE,KAAK;AACpB,IAAA,mBAAmB,EAAE,wBAAwB;AAC7C,IAAA,MAAM,QAAQ,CAAC,KAAU,EAAE,OAAO,EAAA;QAChC,MAAM,UAAU,GAAGA,2BAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;;QAGhD,IAAIC,yBAAY,CAAC,KAAK,CAAC,IAAI,UAAU,KAAK,SAAS,EAAE;AACnD,YAAA,OAAOC,6BAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,SAAA;AAED,QAAA,OAAOC,4BAAU,CAAC;KACnB;EACD;AAEF;;;AAGG;AACU,MAAA,mBAAmB,GAG3B;AACH,IAAA,IAAI,EAAE,iBAAiB;AACvB,IAAA,WAAW,EAAE,2DAA2D;IACxE,SAAS,EAAE,CAAC,CAAC;AACb,IAAA,aAAa,EAAE,KAAK;AACpB,IAAA,mBAAmB,EAAE,wBAAwB;AAC7C,IAAA,MAAM,QAAQ,CAAC,KAAU,EAAE,OAAO,EAAA;AAChC,QAAA,MAAM,EAAE,MAAM,EAAE,KAAK,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AAC1D,QAAA,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;;QAGxE,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,KAAKC,kBAAG,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,SAAS,CAAC,CAAC;;AAG7E,QAAA,IAAIH,yBAAY,CAAC,KAAK,CAAC,IAAI,UAAU,EAAE;AACrC,YAAA,OAAOC,6BAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,SAAA;AAED,QAAA,OAAOC,4BAAU,CAAC;KACnB;EACD;AAEF;;;AAGG;AACU,MAAA,mBAAmB,GAG3B;AACH,IAAA,IAAI,EAAE,iBAAiB;AACvB,IAAA,WAAW,EAAE,iEAAiE;IAC9E,SAAS,EAAE,CAAC,CAAC;AACb,IAAA,aAAa,EAAE,KAAK;AACpB,IAAA,mBAAmB,EAAE,wBAAwB;AAC7C,IAAA,MAAM,QAAQ,CAAC,KAAU,EAAE,OAAO,EAAA;AAChC,QAAA,MAAM,EAAE,MAAM,EAAE,KAAK,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AAC1D,QAAA,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;;QAGxE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,KAAKC,kBAAG,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,SAAS,CAAC,CAAC;;AAG5E,QAAA,IAAIH,yBAAY,CAAC,KAAK,CAAC,IAAI,UAAU,EAAE;AACrC,YAAA,OAAOC,6BAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,SAAA;AAED,QAAA,OAAOC,4BAAU,CAAC;KACnB;"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { SchemaRule } from "../../types";
|
|
2
|
+
/**
|
|
3
|
+
* Required without rule - field is required if another field is missing
|
|
4
|
+
* Supports both global and sibling scope
|
|
5
|
+
*/
|
|
6
|
+
export declare const requiredWithoutRule: SchemaRule<{
|
|
7
|
+
field: string;
|
|
8
|
+
scope?: "global" | "sibling";
|
|
9
|
+
}>;
|
|
10
|
+
/**
|
|
11
|
+
* Required without all rule - field is required if all specified fields are missing
|
|
12
|
+
* Supports both global and sibling scope
|
|
13
|
+
*/
|
|
14
|
+
export declare const requiredWithoutAllRule: SchemaRule<{
|
|
15
|
+
fields: string[];
|
|
16
|
+
scope?: "global" | "sibling";
|
|
17
|
+
}>;
|
|
18
|
+
/**
|
|
19
|
+
* Required without any rule - field is required if any of the specified fields is missing
|
|
20
|
+
* Supports both global and sibling scope
|
|
21
|
+
*/
|
|
22
|
+
export declare const requiredWithoutAnyRule: SchemaRule<{
|
|
23
|
+
fields: string[];
|
|
24
|
+
scope?: "global" | "sibling";
|
|
25
|
+
}>;
|
|
26
|
+
//# sourceMappingURL=required-without-rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"required-without-rules.d.ts","sourceRoot":"","sources":["../../../src/rules/conditional/required-without-rules.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,UAAU,CAAC;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B,CAgBA,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,UAAU,CAAC;IAC9C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B,CAoBA,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,UAAU,CAAC;IAC9C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B,CAoBA,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
'use strict';var reinforcements=require('@mongez/reinforcements'),getFieldValue=require('../../helpers/get-field-value.js'),validationHelpers=require('../../helpers/validation-helpers.js'),isEmptyValue=require('../../helpers/is-empty-value.js');/**
|
|
2
|
+
* Required without rule - field is required if another field is missing
|
|
3
|
+
* Supports both global and sibling scope
|
|
4
|
+
*/
|
|
5
|
+
const requiredWithoutRule = {
|
|
6
|
+
name: "requiredWithout",
|
|
7
|
+
description: "The field is required if another field is missing",
|
|
8
|
+
sortOrder: -2,
|
|
9
|
+
requiresValue: false,
|
|
10
|
+
defaultErrorMessage: "The :input is required",
|
|
11
|
+
async validate(value, context) {
|
|
12
|
+
const fieldValue = getFieldValue.getFieldValue(this, context);
|
|
13
|
+
// Field is required if the other field is missing
|
|
14
|
+
if (isEmptyValue.isEmptyValue(value) && fieldValue === undefined) {
|
|
15
|
+
return validationHelpers.invalidRule(this, context);
|
|
16
|
+
}
|
|
17
|
+
return validationHelpers.VALID_RULE;
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Required without all rule - field is required if all specified fields are missing
|
|
22
|
+
* Supports both global and sibling scope
|
|
23
|
+
*/
|
|
24
|
+
const requiredWithoutAllRule = {
|
|
25
|
+
name: "requiredWithoutAll",
|
|
26
|
+
description: "The field is required if all specified fields are missing",
|
|
27
|
+
sortOrder: -2,
|
|
28
|
+
requiresValue: false,
|
|
29
|
+
defaultErrorMessage: "The :input is required",
|
|
30
|
+
async validate(value, context) {
|
|
31
|
+
const { fields, scope = "global" } = this.context.options;
|
|
32
|
+
const source = scope === "sibling" ? context.parent : context.allValues;
|
|
33
|
+
// Check if all fields are missing
|
|
34
|
+
const allMissing = fields.every((field) => reinforcements.get(source, field) === undefined);
|
|
35
|
+
// Field is required if all other fields are missing
|
|
36
|
+
if (isEmptyValue.isEmptyValue(value) && allMissing) {
|
|
37
|
+
return validationHelpers.invalidRule(this, context);
|
|
38
|
+
}
|
|
39
|
+
return validationHelpers.VALID_RULE;
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Required without any rule - field is required if any of the specified fields is missing
|
|
44
|
+
* Supports both global and sibling scope
|
|
45
|
+
*/
|
|
46
|
+
const requiredWithoutAnyRule = {
|
|
47
|
+
name: "requiredWithoutAny",
|
|
48
|
+
description: "The field is required if any of the specified fields is missing",
|
|
49
|
+
sortOrder: -2,
|
|
50
|
+
requiresValue: false,
|
|
51
|
+
defaultErrorMessage: "The :input is required",
|
|
52
|
+
async validate(value, context) {
|
|
53
|
+
const { fields, scope = "global" } = this.context.options;
|
|
54
|
+
const source = scope === "sibling" ? context.parent : context.allValues;
|
|
55
|
+
// Check if any field is missing
|
|
56
|
+
const anyMissing = fields.some((field) => reinforcements.get(source, field) === undefined);
|
|
57
|
+
// Field is required if any other field is missing
|
|
58
|
+
if (isEmptyValue.isEmptyValue(value) && anyMissing) {
|
|
59
|
+
return validationHelpers.invalidRule(this, context);
|
|
60
|
+
}
|
|
61
|
+
return validationHelpers.VALID_RULE;
|
|
62
|
+
},
|
|
63
|
+
};exports.requiredWithoutAllRule=requiredWithoutAllRule;exports.requiredWithoutAnyRule=requiredWithoutAnyRule;exports.requiredWithoutRule=requiredWithoutRule;//# sourceMappingURL=required-without-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"required-without-rules.js","sources":["../../../src/rules/conditional/required-without-rules.ts"],"sourcesContent":[null],"names":["getFieldValue","isEmptyValue","invalidRule","VALID_RULE","get"],"mappings":"qPAKA;;;AAGG;AACU,MAAA,mBAAmB,GAG3B;AACH,IAAA,IAAI,EAAE,iBAAiB;AACvB,IAAA,WAAW,EAAE,mDAAmD;IAChE,SAAS,EAAE,CAAC,CAAC;AACb,IAAA,aAAa,EAAE,KAAK;AACpB,IAAA,mBAAmB,EAAE,wBAAwB;AAC7C,IAAA,MAAM,QAAQ,CAAC,KAAU,EAAE,OAAO,EAAA;QAChC,MAAM,UAAU,GAAGA,2BAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;;QAGhD,IAAIC,yBAAY,CAAC,KAAK,CAAC,IAAI,UAAU,KAAK,SAAS,EAAE;AACnD,YAAA,OAAOC,6BAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,SAAA;AAED,QAAA,OAAOC,4BAAU,CAAC;KACnB;EACD;AAEF;;;AAGG;AACU,MAAA,sBAAsB,GAG9B;AACH,IAAA,IAAI,EAAE,oBAAoB;AAC1B,IAAA,WAAW,EAAE,2DAA2D;IACxE,SAAS,EAAE,CAAC,CAAC;AACb,IAAA,aAAa,EAAE,KAAK;AACpB,IAAA,mBAAmB,EAAE,wBAAwB;AAC7C,IAAA,MAAM,QAAQ,CAAC,KAAU,EAAE,OAAO,EAAA;AAChC,QAAA,MAAM,EAAE,MAAM,EAAE,KAAK,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AAC1D,QAAA,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;;QAGxE,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,KAAKC,kBAAG,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,SAAS,CAAC,CAAC;;AAG7E,QAAA,IAAIH,yBAAY,CAAC,KAAK,CAAC,IAAI,UAAU,EAAE;AACrC,YAAA,OAAOC,6BAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,SAAA;AAED,QAAA,OAAOC,4BAAU,CAAC;KACnB;EACD;AAEF;;;AAGG;AACU,MAAA,sBAAsB,GAG9B;AACH,IAAA,IAAI,EAAE,oBAAoB;AAC1B,IAAA,WAAW,EAAE,iEAAiE;IAC9E,SAAS,EAAE,CAAC,CAAC;AACb,IAAA,aAAa,EAAE,KAAK;AACpB,IAAA,mBAAmB,EAAE,wBAAwB;AAC7C,IAAA,MAAM,QAAQ,CAAC,KAAU,EAAE,OAAO,EAAA;AAChC,QAAA,MAAM,EAAE,MAAM,EAAE,KAAK,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AAC1D,QAAA,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;;QAGxE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,KAAKC,kBAAG,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,SAAS,CAAC,CAAC;;AAG5E,QAAA,IAAIH,yBAAY,CAAC,KAAK,CAAC,IAAI,UAAU,EAAE;AACrC,YAAA,OAAOC,6BAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,SAAA;AAED,QAAA,OAAOC,4BAAU,CAAC;KACnB;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"equal.d.ts","sourceRoot":"","sources":["../../../src/rules/core/equal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,UAAU,CAAC;IAAE,KAAK,EAAE,GAAG,CAAA;CAAE,CAShD,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';require('@mongez/reinforcements');var validationHelpers=require('../../helpers/validation-helpers.js');/**
|
|
2
|
+
* Equal rule - value must be equal to a specific value
|
|
3
|
+
*/
|
|
4
|
+
const equalRule = {
|
|
5
|
+
name: "equal",
|
|
6
|
+
defaultErrorMessage: "The :input must be equal to :value",
|
|
7
|
+
async validate(value, context) {
|
|
8
|
+
if (value !== this.context.options.value) {
|
|
9
|
+
return validationHelpers.invalidRule(this, context);
|
|
10
|
+
}
|
|
11
|
+
return validationHelpers.VALID_RULE;
|
|
12
|
+
},
|
|
13
|
+
};exports.equalRule=equalRule;//# sourceMappingURL=equal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"equal.js","sources":["../../../src/rules/core/equal.ts"],"sourcesContent":[null],"names":["invalidRule","VALID_RULE"],"mappings":"oHAGA;;AAEG;AACU,MAAA,SAAS,GAA+B;AACnD,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,mBAAmB,EAAE,oCAAoC;AACzD,IAAA,MAAM,QAAQ,CAAC,KAAU,EAAE,OAAO,EAAA;QAChC,IAAI,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE;AACxC,YAAA,OAAOA,6BAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,SAAA;AACD,QAAA,OAAOC,4BAAU,CAAC;KACnB;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forbidden.d.ts","sourceRoot":"","sources":["../../../src/rules/core/forbidden.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,UAS3B,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';require('@mongez/reinforcements');var validationHelpers=require('../../helpers/validation-helpers.js'),isEmptyValue=require('../../helpers/is-empty-value.js');/**
|
|
2
|
+
* Forbidden rule - value must not be present
|
|
3
|
+
*/
|
|
4
|
+
const forbiddenRule = {
|
|
5
|
+
name: "forbidden",
|
|
6
|
+
defaultErrorMessage: "The :input is forbidden",
|
|
7
|
+
async validate(value, context) {
|
|
8
|
+
if (!isEmptyValue.isEmptyValue(value)) {
|
|
9
|
+
return validationHelpers.invalidRule(this, context);
|
|
10
|
+
}
|
|
11
|
+
return validationHelpers.VALID_RULE;
|
|
12
|
+
},
|
|
13
|
+
};exports.forbiddenRule=forbiddenRule;//# sourceMappingURL=forbidden.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forbidden.js","sources":["../../../src/rules/core/forbidden.ts"],"sourcesContent":[null],"names":["isEmptyValue","invalidRule","VALID_RULE"],"mappings":"4KAIA;;AAEG;AACU,MAAA,aAAa,GAAe;AACvC,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,mBAAmB,EAAE,yBAAyB;AAC9C,IAAA,MAAM,QAAQ,CAAC,KAAU,EAAE,OAAO,EAAA;AAChC,QAAA,IAAI,CAACA,yBAAY,CAAC,KAAK,CAAC,EAAE;AACxB,YAAA,OAAOC,6BAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,SAAA;AACD,QAAA,OAAOC,4BAAU,CAAC;KACnB;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rules/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { SchemaRule } from "../../types";
|
|
2
|
+
/**
|
|
3
|
+
* Required rule - value must be present and not empty
|
|
4
|
+
*/
|
|
5
|
+
export declare const requiredRule: SchemaRule;
|
|
6
|
+
/**
|
|
7
|
+
* Present rule - key must exist in the data, but value can be anything
|
|
8
|
+
* (empty string, null, undefined are all valid as long as the key exists)
|
|
9
|
+
*/
|
|
10
|
+
export declare const presentRule: SchemaRule;
|
|
11
|
+
//# sourceMappingURL=required.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"required.d.ts","sourceRoot":"","sources":["../../../src/rules/core/required.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,UAW1B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,UAYzB,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use strict';require('@mongez/reinforcements');var validationHelpers=require('../../helpers/validation-helpers.js'),isEmptyValue=require('../../helpers/is-empty-value.js');/**
|
|
2
|
+
* Required rule - value must be present and not empty
|
|
3
|
+
*/
|
|
4
|
+
const requiredRule = {
|
|
5
|
+
name: "required",
|
|
6
|
+
defaultErrorMessage: "The :input is required",
|
|
7
|
+
requiresValue: false,
|
|
8
|
+
sortOrder: -2,
|
|
9
|
+
async validate(value, context) {
|
|
10
|
+
if (isEmptyValue.isEmptyValue(value)) {
|
|
11
|
+
return validationHelpers.invalidRule(this, context);
|
|
12
|
+
}
|
|
13
|
+
return validationHelpers.VALID_RULE;
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Present rule - key must exist in the data, but value can be anything
|
|
18
|
+
* (empty string, null, undefined are all valid as long as the key exists)
|
|
19
|
+
*/
|
|
20
|
+
const presentRule = {
|
|
21
|
+
name: "present",
|
|
22
|
+
defaultErrorMessage: "The :input field is required",
|
|
23
|
+
requiresValue: false,
|
|
24
|
+
sortOrder: -2,
|
|
25
|
+
async validate(value, context) {
|
|
26
|
+
if (value === undefined) {
|
|
27
|
+
return validationHelpers.invalidRule(this, context);
|
|
28
|
+
}
|
|
29
|
+
return validationHelpers.VALID_RULE;
|
|
30
|
+
},
|
|
31
|
+
};exports.presentRule=presentRule;exports.requiredRule=requiredRule;//# sourceMappingURL=required.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"required.js","sources":["../../../src/rules/core/required.ts"],"sourcesContent":[null],"names":["isEmptyValue","invalidRule","VALID_RULE"],"mappings":"4KAIA;;AAEG;AACU,MAAA,YAAY,GAAe;AACtC,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,mBAAmB,EAAE,wBAAwB;AAC7C,IAAA,aAAa,EAAE,KAAK;IACpB,SAAS,EAAE,CAAC,CAAC;AACb,IAAA,MAAM,QAAQ,CAAC,KAAU,EAAE,OAAO,EAAA;AAChC,QAAA,IAAIA,yBAAY,CAAC,KAAK,CAAC,EAAE;AACvB,YAAA,OAAOC,6BAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,SAAA;AACD,QAAA,OAAOC,4BAAU,CAAC;KACnB;EACD;AAEF;;;AAGG;AACU,MAAA,WAAW,GAAe;AACrC,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,mBAAmB,EAAE,8BAA8B;AACnD,IAAA,aAAa,EAAE,KAAK;IACpB,SAAS,EAAE,CAAC,CAAC;AACb,IAAA,MAAM,QAAQ,CAAC,KAAU,EAAE,OAAO,EAAA;QAChC,IAAI,KAAK,KAAK,SAAS,EAAE;AACvB,YAAA,OAAOD,6BAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,SAAA;AAED,QAAA,OAAOC,4BAAU,CAAC;KACnB;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { SchemaRule } from "../../types";
|
|
2
|
+
import type { BaseValidator } from "../../validators/base-validator";
|
|
3
|
+
/**
|
|
4
|
+
* Union rule - value must match at least one of the provided validators
|
|
5
|
+
*/
|
|
6
|
+
export declare const unionRule: SchemaRule<{
|
|
7
|
+
validators: BaseValidator[];
|
|
8
|
+
}>;
|
|
9
|
+
//# sourceMappingURL=union.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"union.d.ts","sourceRoot":"","sources":["../../../src/rules/core/union.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAErE;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,UAAU,CAAC;IAAE,UAAU,EAAE,aAAa,EAAE,CAAA;CAAE,CA2CjE,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
'use strict';require('@mongez/reinforcements');var validationHelpers=require('../../helpers/validation-helpers.js');/**
|
|
2
|
+
* Union rule - value must match at least one of the provided validators
|
|
3
|
+
*/
|
|
4
|
+
const unionRule = {
|
|
5
|
+
name: "union",
|
|
6
|
+
defaultErrorMessage: "Value must match one of the allowed types",
|
|
7
|
+
async validate(value, context) {
|
|
8
|
+
const validators = this.context.options.validators;
|
|
9
|
+
const firstErrorOnly = context.configurations?.firstErrorOnly ?? true;
|
|
10
|
+
const allErrors = [];
|
|
11
|
+
// Try each validator
|
|
12
|
+
for (const validator of validators) {
|
|
13
|
+
// Skip if type doesn't match (optimization)
|
|
14
|
+
if (!validator.matchesType(value)) {
|
|
15
|
+
continue;
|
|
16
|
+
}
|
|
17
|
+
// Type matches - validate
|
|
18
|
+
const result = await validator.validate(value, context);
|
|
19
|
+
if (result.isValid) {
|
|
20
|
+
// Success! Validator matched and validated
|
|
21
|
+
return validationHelpers.VALID_RULE;
|
|
22
|
+
}
|
|
23
|
+
// Failed - collect error message
|
|
24
|
+
const errorMsg = result.errors?.[0]?.error || "Validation failed";
|
|
25
|
+
allErrors.push(errorMsg);
|
|
26
|
+
// If firstErrorOnly, stop after first failed validator
|
|
27
|
+
if (firstErrorOnly) {
|
|
28
|
+
break;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
// All failed or no validator matched the type
|
|
32
|
+
if (allErrors.length > 0) {
|
|
33
|
+
// At least one validator matched type but failed validation
|
|
34
|
+
this.context.errorMessage = firstErrorOnly
|
|
35
|
+
? allErrors[0]
|
|
36
|
+
: allErrors.join("; ");
|
|
37
|
+
}
|
|
38
|
+
return validationHelpers.invalidRule(this, context);
|
|
39
|
+
},
|
|
40
|
+
};exports.unionRule=unionRule;//# sourceMappingURL=union.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"union.js","sources":["../../../src/rules/core/union.ts"],"sourcesContent":[null],"names":["VALID_RULE","invalidRule"],"mappings":"oHAIA;;AAEG;AACU,MAAA,SAAS,GAAgD;AACpE,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,mBAAmB,EAAE,2CAA2C;AAChE,IAAA,MAAM,QAAQ,CAAC,KAAU,EAAE,OAAO,EAAA;QAChC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;QACnD,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,EAAE,cAAc,IAAI,IAAI,CAAC;QACtE,MAAM,SAAS,GAAa,EAAE,CAAC;;AAG/B,QAAA,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;;AAElC,YAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;gBACjC,SAAS;AACV,aAAA;;YAGD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAExD,IAAI,MAAM,CAAC,OAAO,EAAE;;AAElB,gBAAA,OAAOA,4BAAU,CAAC;AACnB,aAAA;;AAGD,YAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,mBAAmB,CAAC;AAClE,YAAA,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;AAGzB,YAAA,IAAI,cAAc,EAAE;gBAClB,MAAM;AACP,aAAA;AACF,SAAA;;AAGD,QAAA,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;;AAExB,YAAA,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,cAAc;AACxC,kBAAE,SAAS,CAAC,CAAC,CAAC;AACd,kBAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,SAAA;AAED,QAAA,OAAOC,6BAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACnC;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"when.d.ts","sourceRoot":"","sources":["../../../src/rules/core/when.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,UAAU,CAAC,eAAe,CA6ChD,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
'use strict';var reinforcements=require('@mongez/reinforcements'),validationHelpers=require('../../helpers/validation-helpers.js');/**
|
|
2
|
+
* When rule - conditional validation based on another field value
|
|
3
|
+
*/
|
|
4
|
+
const whenRule = {
|
|
5
|
+
name: "when",
|
|
6
|
+
description: "Apply conditional validation based on another field value",
|
|
7
|
+
async validate(value, context) {
|
|
8
|
+
const fieldToCheck = this.context.options.field;
|
|
9
|
+
const conditions = this.context.options.is;
|
|
10
|
+
const otherwise = this.context.options.otherwise;
|
|
11
|
+
const scope = this.context.options.scope || "global";
|
|
12
|
+
const fieldValue = scope === "global"
|
|
13
|
+
? reinforcements.get(context.allValues, fieldToCheck)
|
|
14
|
+
: reinforcements.get(context.parent, fieldToCheck);
|
|
15
|
+
// Convert field value to string for key lookup
|
|
16
|
+
// This handles boolean, number, and string field values
|
|
17
|
+
const fieldValueKey = String(fieldValue);
|
|
18
|
+
if (conditions[fieldValueKey]) {
|
|
19
|
+
const result = await conditions[fieldValueKey].validate(value, context);
|
|
20
|
+
if (result.isValid) {
|
|
21
|
+
return validationHelpers.VALID_RULE;
|
|
22
|
+
}
|
|
23
|
+
// Safe error access
|
|
24
|
+
this.context.errorMessage =
|
|
25
|
+
result.errors?.[0]?.error || "Validation failed";
|
|
26
|
+
return validationHelpers.invalidRule(this, context);
|
|
27
|
+
}
|
|
28
|
+
if (otherwise) {
|
|
29
|
+
const result = await otherwise.validate(value, context);
|
|
30
|
+
if (result.isValid) {
|
|
31
|
+
return validationHelpers.VALID_RULE;
|
|
32
|
+
}
|
|
33
|
+
// Safe error access
|
|
34
|
+
this.context.errorMessage =
|
|
35
|
+
result.errors?.[0]?.error || "Validation failed";
|
|
36
|
+
return validationHelpers.invalidRule(this, context);
|
|
37
|
+
}
|
|
38
|
+
return validationHelpers.VALID_RULE;
|
|
39
|
+
},
|
|
40
|
+
};exports.whenRule=whenRule;//# sourceMappingURL=when.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"when.js","sources":["../../../src/rules/core/when.ts"],"sourcesContent":[null],"names":["get","VALID_RULE","invalidRule"],"mappings":"mIAIA;;AAEG;AACU,MAAA,QAAQ,GAAgC;AACnD,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,WAAW,EAAE,2DAA2D;AACxE,IAAA,MAAM,QAAQ,CAAC,KAAU,EAAE,OAAO,EAAA;QAChC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC;AAErD,QAAA,MAAM,UAAU,GACd,KAAK,KAAK,QAAQ;cACdA,kBAAG,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC;cACpCA,kBAAG,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;;;AAIxC,QAAA,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAEzC,QAAA,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE;AAC7B,YAAA,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACxE,IAAI,MAAM,CAAC,OAAO,EAAE;AAClB,gBAAA,OAAOC,4BAAU,CAAC;AACnB,aAAA;;YAGD,IAAI,CAAC,OAAO,CAAC,YAAY;gBACvB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,mBAAmB,CAAC;AACnD,YAAA,OAAOC,6BAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,SAAA;AAED,QAAA,IAAI,SAAS,EAAE;YACb,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAExD,IAAI,MAAM,CAAC,OAAO,EAAE;AAClB,gBAAA,OAAOD,4BAAU,CAAC;AACnB,aAAA;;YAGD,IAAI,CAAC,OAAO,CAAC,YAAY;gBACvB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,mBAAmB,CAAC;AACnD,YAAA,OAAOC,6BAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,SAAA;AAED,QAAA,OAAOD,4BAAU,CAAC;KACnB;"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { SchemaRule } from "../../types";
|
|
2
|
+
/**
|
|
3
|
+
* Between dates rule - date must be between start and end dates
|
|
4
|
+
*/
|
|
5
|
+
export declare const betweenDatesRule: SchemaRule<{
|
|
6
|
+
startDate: Date;
|
|
7
|
+
endDate: Date;
|
|
8
|
+
}>;
|
|
9
|
+
/**
|
|
10
|
+
* Today rule - date must be exactly today
|
|
11
|
+
*/
|
|
12
|
+
export declare const todayRule: SchemaRule;
|
|
13
|
+
/**
|
|
14
|
+
* Past rule - date must be in the past
|
|
15
|
+
*/
|
|
16
|
+
export declare const pastRule: SchemaRule;
|
|
17
|
+
/**
|
|
18
|
+
* Future rule - date must be in the future
|
|
19
|
+
*/
|
|
20
|
+
export declare const futureRule: SchemaRule;
|
|
21
|
+
/**
|
|
22
|
+
* After today rule - date must be after today (not including today)
|
|
23
|
+
*/
|
|
24
|
+
export declare const afterTodayRule: SchemaRule;
|
|
25
|
+
//# sourceMappingURL=date-comparison-rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-comparison-rules.d.ts","sourceRoot":"","sources":["../../../src/rules/date/date-comparison-rules.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,UAAU,CAAC;IACxC,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,IAAI,CAAC;CACf,CAYA,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,UAcvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,UAYtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,UAYxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,UAc5B,CAAC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
'use strict';require('@mongez/reinforcements');var validationHelpers=require('../../helpers/validation-helpers.js');/**
|
|
2
|
+
* Between dates rule - date must be between start and end dates
|
|
3
|
+
*/
|
|
4
|
+
const betweenDatesRule = {
|
|
5
|
+
name: "betweenDates",
|
|
6
|
+
defaultErrorMessage: "The :input must be between :startDate and :endDate",
|
|
7
|
+
async validate(value, context) {
|
|
8
|
+
const { startDate, endDate } = this.context.options;
|
|
9
|
+
const inputDate = new Date(value);
|
|
10
|
+
if (inputDate >= startDate && inputDate <= endDate) {
|
|
11
|
+
return validationHelpers.VALID_RULE;
|
|
12
|
+
}
|
|
13
|
+
return validationHelpers.invalidRule(this, context);
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Today rule - date must be exactly today
|
|
18
|
+
*/
|
|
19
|
+
const todayRule = {
|
|
20
|
+
name: "today",
|
|
21
|
+
defaultErrorMessage: "The :input must be today",
|
|
22
|
+
async validate(value, context) {
|
|
23
|
+
const today = new Date();
|
|
24
|
+
today.setHours(0, 0, 0, 0);
|
|
25
|
+
const inputDate = new Date(value);
|
|
26
|
+
inputDate.setHours(0, 0, 0, 0);
|
|
27
|
+
if (inputDate.getTime() === today.getTime()) {
|
|
28
|
+
return validationHelpers.VALID_RULE;
|
|
29
|
+
}
|
|
30
|
+
return validationHelpers.invalidRule(this, context);
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Past rule - date must be in the past
|
|
35
|
+
*/
|
|
36
|
+
const pastRule = {
|
|
37
|
+
name: "past",
|
|
38
|
+
defaultErrorMessage: "The :input must be in the past",
|
|
39
|
+
async validate(value, context) {
|
|
40
|
+
const now = new Date();
|
|
41
|
+
const inputDate = new Date(value);
|
|
42
|
+
if (inputDate < now) {
|
|
43
|
+
return validationHelpers.VALID_RULE;
|
|
44
|
+
}
|
|
45
|
+
return validationHelpers.invalidRule(this, context);
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Future rule - date must be in the future
|
|
50
|
+
*/
|
|
51
|
+
const futureRule = {
|
|
52
|
+
name: "future",
|
|
53
|
+
defaultErrorMessage: "The :input must be in the future",
|
|
54
|
+
async validate(value, context) {
|
|
55
|
+
const now = new Date();
|
|
56
|
+
if (value > now) {
|
|
57
|
+
return validationHelpers.VALID_RULE;
|
|
58
|
+
}
|
|
59
|
+
return validationHelpers.invalidRule(this, context);
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* After today rule - date must be after today (not including today)
|
|
64
|
+
*/
|
|
65
|
+
const afterTodayRule = {
|
|
66
|
+
name: "afterToday",
|
|
67
|
+
defaultErrorMessage: "The :input must be after today",
|
|
68
|
+
async validate(value, context) {
|
|
69
|
+
const today = new Date();
|
|
70
|
+
today.setHours(0, 0, 0, 0);
|
|
71
|
+
const inputDate = new Date(value);
|
|
72
|
+
inputDate.setHours(0, 0, 0, 0);
|
|
73
|
+
if (inputDate > today) {
|
|
74
|
+
return validationHelpers.VALID_RULE;
|
|
75
|
+
}
|
|
76
|
+
return validationHelpers.invalidRule(this, context);
|
|
77
|
+
},
|
|
78
|
+
};exports.afterTodayRule=afterTodayRule;exports.betweenDatesRule=betweenDatesRule;exports.futureRule=futureRule;exports.pastRule=pastRule;exports.todayRule=todayRule;//# sourceMappingURL=date-comparison-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-comparison-rules.js","sources":["../../../src/rules/date/date-comparison-rules.ts"],"sourcesContent":[null],"names":["VALID_RULE","invalidRule"],"mappings":"oHAGA;;AAEG;AACU,MAAA,gBAAgB,GAGxB;AACH,IAAA,IAAI,EAAE,cAAc;AACpB,IAAA,mBAAmB,EAAE,oDAAoD;AACzE,IAAA,MAAM,QAAQ,CAAC,KAAW,EAAE,OAAO,EAAA;QACjC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AACpD,QAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AAElC,QAAA,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,OAAO,EAAE;AAClD,YAAA,OAAOA,4BAAU,CAAC;AACnB,SAAA;AACD,QAAA,OAAOC,6BAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACnC;EACD;AAEF;;AAEG;AACU,MAAA,SAAS,GAAe;AACnC,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,mBAAmB,EAAE,0BAA0B;AAC/C,IAAA,MAAM,QAAQ,CAAC,KAAW,EAAE,OAAO,EAAA;AACjC,QAAA,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QACzB,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3B,QAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAE/B,IAAI,SAAS,CAAC,OAAO,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,EAAE;AAC3C,YAAA,OAAOD,4BAAU,CAAC;AACnB,SAAA;AACD,QAAA,OAAOC,6BAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACnC;EACD;AAEF;;AAEG;AACU,MAAA,QAAQ,GAAe;AAClC,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,mBAAmB,EAAE,gCAAgC;AACrD,IAAA,MAAM,QAAQ,CAAC,KAAW,EAAE,OAAO,EAAA;AACjC,QAAA,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;AACvB,QAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;QAElC,IAAI,SAAS,GAAG,GAAG,EAAE;AACnB,YAAA,OAAOD,4BAAU,CAAC;AACnB,SAAA;AACD,QAAA,OAAOC,6BAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACnC;EACD;AAEF;;AAEG;AACU,MAAA,UAAU,GAAe;AACpC,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,mBAAmB,EAAE,kCAAkC;AACvD,IAAA,MAAM,QAAQ,CAAC,KAAW,EAAE,OAAO,EAAA;AACjC,QAAA,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QAEvB,IAAI,KAAK,GAAG,GAAG,EAAE;AACf,YAAA,OAAOD,4BAAU,CAAC;AACnB,SAAA;AAED,QAAA,OAAOC,6BAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACnC;EACD;AAEF;;AAEG;AACU,MAAA,cAAc,GAAe;AACxC,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,mBAAmB,EAAE,gCAAgC;AACrD,IAAA,MAAM,QAAQ,CAAC,KAAW,EAAE,OAAO,EAAA;AACjC,QAAA,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QACzB,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3B,QAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;QAClC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAE/B,IAAI,SAAS,GAAG,KAAK,EAAE;AACrB,YAAA,OAAOD,4BAAU,CAAC;AACnB,SAAA;AACD,QAAA,OAAOC,6BAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACnC;"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { SchemaRule } from "../../types";
|
|
2
|
+
import type { WeekDay } from "../../types/date-types";
|
|
3
|
+
/**
|
|
4
|
+
* Weekend rule - date must be Saturday or Sunday
|
|
5
|
+
*/
|
|
6
|
+
export declare const weekendRule: SchemaRule;
|
|
7
|
+
/**
|
|
8
|
+
* Weekday rule - date must be Monday through Friday
|
|
9
|
+
*/
|
|
10
|
+
export declare const weekdayRule: SchemaRule;
|
|
11
|
+
/**
|
|
12
|
+
* Weekdays rule - date must be one of specified weekdays
|
|
13
|
+
*/
|
|
14
|
+
export declare const weekdaysRule: SchemaRule<{
|
|
15
|
+
days: WeekDay[];
|
|
16
|
+
}>;
|
|
17
|
+
/**
|
|
18
|
+
* Business day rule - date must be Monday-Friday (no weekends)
|
|
19
|
+
*/
|
|
20
|
+
export declare const businessDayRule: SchemaRule;
|
|
21
|
+
//# sourceMappingURL=date-day-rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-day-rules.d.ts","sourceRoot":"","sources":["../../../src/rules/date/date-day-rules.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAGtD;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,UAazB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,UAazB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,UAAU,CAAC;IAAE,IAAI,EAAE,OAAO,EAAE,CAAA;CAAE,CAexD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,UAa7B,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
'use strict';require('@mongez/reinforcements');var validationHelpers=require('../../helpers/validation-helpers.js'),dateTypes=require('../../types/date-types.js');/**
|
|
2
|
+
* Weekend rule - date must be Saturday or Sunday
|
|
3
|
+
*/
|
|
4
|
+
const weekendRule = {
|
|
5
|
+
name: "weekend",
|
|
6
|
+
defaultErrorMessage: "The :input must be a weekend (Saturday or Sunday)",
|
|
7
|
+
async validate(value, context) {
|
|
8
|
+
const inputDate = new Date(value);
|
|
9
|
+
const dayOfWeek = inputDate.getDay();
|
|
10
|
+
// 0 = Sunday, 6 = Saturday
|
|
11
|
+
if (dayOfWeek === 0 || dayOfWeek === 6) {
|
|
12
|
+
return validationHelpers.VALID_RULE;
|
|
13
|
+
}
|
|
14
|
+
return validationHelpers.invalidRule(this, context);
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Weekday rule - date must be Monday through Friday
|
|
19
|
+
*/
|
|
20
|
+
const weekdayRule = {
|
|
21
|
+
name: "weekday",
|
|
22
|
+
defaultErrorMessage: "The :input must be a weekday (Monday-Friday)",
|
|
23
|
+
async validate(value, context) {
|
|
24
|
+
const inputDate = new Date(value);
|
|
25
|
+
const dayOfWeek = inputDate.getDay();
|
|
26
|
+
// 1-5 = Monday-Friday
|
|
27
|
+
if (dayOfWeek >= 1 && dayOfWeek <= 5) {
|
|
28
|
+
return validationHelpers.VALID_RULE;
|
|
29
|
+
}
|
|
30
|
+
return validationHelpers.invalidRule(this, context);
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Weekdays rule - date must be one of specified weekdays
|
|
35
|
+
*/
|
|
36
|
+
const weekdaysRule = {
|
|
37
|
+
name: "weekdays",
|
|
38
|
+
defaultErrorMessage: "The :input must be one of: :days",
|
|
39
|
+
async validate(value, context) {
|
|
40
|
+
const inputDate = new Date(value);
|
|
41
|
+
const dayOfWeek = inputDate.getDay();
|
|
42
|
+
const { days } = this.context.options;
|
|
43
|
+
const allowedDays = days.map(day => dateTypes.WEEK_DAYS[day]);
|
|
44
|
+
if (allowedDays.includes(dayOfWeek)) {
|
|
45
|
+
return validationHelpers.VALID_RULE;
|
|
46
|
+
}
|
|
47
|
+
return validationHelpers.invalidRule(this, context);
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Business day rule - date must be Monday-Friday (no weekends)
|
|
52
|
+
*/
|
|
53
|
+
const businessDayRule = {
|
|
54
|
+
name: "businessDay",
|
|
55
|
+
defaultErrorMessage: "The :input must be a business day",
|
|
56
|
+
async validate(value, context) {
|
|
57
|
+
const inputDate = new Date(value);
|
|
58
|
+
const dayOfWeek = inputDate.getDay();
|
|
59
|
+
// 1-5 = Monday-Friday
|
|
60
|
+
if (dayOfWeek >= 1 && dayOfWeek <= 5) {
|
|
61
|
+
return validationHelpers.VALID_RULE;
|
|
62
|
+
}
|
|
63
|
+
return validationHelpers.invalidRule(this, context);
|
|
64
|
+
},
|
|
65
|
+
};exports.businessDayRule=businessDayRule;exports.weekdayRule=weekdayRule;exports.weekdaysRule=weekdaysRule;exports.weekendRule=weekendRule;//# sourceMappingURL=date-day-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-day-rules.js","sources":["../../../src/rules/date/date-day-rules.ts"],"sourcesContent":[null],"names":["VALID_RULE","invalidRule","WEEK_DAYS"],"mappings":"mKAKA;;AAEG;AACU,MAAA,WAAW,GAAe;AACrC,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,mBAAmB,EAAE,mDAAmD;AACxE,IAAA,MAAM,QAAQ,CAAC,KAAW,EAAE,OAAO,EAAA;AACjC,QAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;;AAGrC,QAAA,IAAI,SAAS,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,EAAE;AACtC,YAAA,OAAOA,4BAAU,CAAC;AACnB,SAAA;AACD,QAAA,OAAOC,6BAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACnC;EACD;AAEF;;AAEG;AACU,MAAA,WAAW,GAAe;AACrC,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,mBAAmB,EAAE,8CAA8C;AACnE,IAAA,MAAM,QAAQ,CAAC,KAAW,EAAE,OAAO,EAAA;AACjC,QAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;;AAGrC,QAAA,IAAI,SAAS,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE;AACpC,YAAA,OAAOD,4BAAU,CAAC;AACnB,SAAA;AACD,QAAA,OAAOC,6BAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACnC;EACD;AAEF;;AAEG;AACU,MAAA,YAAY,GAAoC;AAC3D,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,mBAAmB,EAAE,kCAAkC;AACvD,IAAA,MAAM,QAAQ,CAAC,KAAW,EAAE,OAAO,EAAA;AACjC,QAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;QACrC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AAEtC,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAIC,mBAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AAEpD,QAAA,IAAI,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;AACnC,YAAA,OAAOF,4BAAU,CAAC;AACnB,SAAA;AACD,QAAA,OAAOC,6BAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACnC;EACD;AAEF;;AAEG;AACU,MAAA,eAAe,GAAe;AACzC,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,mBAAmB,EAAE,mCAAmC;AACxD,IAAA,MAAM,QAAQ,CAAC,KAAW,EAAE,OAAO,EAAA;AACjC,QAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AAClC,QAAA,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;;AAGrC,QAAA,IAAI,SAAS,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE;AACpC,YAAA,OAAOD,4BAAU,CAAC;AACnB,SAAA;AACD,QAAA,OAAOC,6BAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACnC;"}
|