@warlock.js/seal 4.0.48 → 4.0.59
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,104 @@
|
|
|
1
|
+
import {isPlainObject}from'@mongez/supportive-is';import'@mongez/reinforcements';import {VALID_RULE,invalidRule}from'../../helpers/validation-helpers.js';/**
|
|
2
|
+
* String rule - validates string type
|
|
3
|
+
*/
|
|
4
|
+
const stringRule = {
|
|
5
|
+
name: "string",
|
|
6
|
+
defaultErrorMessage: "The :input must be a string",
|
|
7
|
+
async validate(value, context) {
|
|
8
|
+
if (typeof value === "string") {
|
|
9
|
+
return VALID_RULE;
|
|
10
|
+
}
|
|
11
|
+
return invalidRule(this, context);
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Number rule - validates number type
|
|
16
|
+
*/
|
|
17
|
+
const numberRule = {
|
|
18
|
+
name: "number",
|
|
19
|
+
defaultErrorMessage: "The :input must be a number",
|
|
20
|
+
async validate(value, context) {
|
|
21
|
+
if (typeof value === "number") {
|
|
22
|
+
return VALID_RULE;
|
|
23
|
+
}
|
|
24
|
+
return invalidRule(this, context);
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Boolean rule - validates boolean type
|
|
29
|
+
*/
|
|
30
|
+
const booleanRule = {
|
|
31
|
+
name: "boolean",
|
|
32
|
+
defaultErrorMessage: "The :input must be a boolean",
|
|
33
|
+
async validate(value, context) {
|
|
34
|
+
if (typeof value === "boolean") {
|
|
35
|
+
return VALID_RULE;
|
|
36
|
+
}
|
|
37
|
+
return invalidRule(this, context);
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Int rule - validates integer type
|
|
42
|
+
*/
|
|
43
|
+
const intRule = {
|
|
44
|
+
name: "int",
|
|
45
|
+
defaultErrorMessage: "The :input must be an integer",
|
|
46
|
+
async validate(value, context) {
|
|
47
|
+
if (Number.isInteger(value)) {
|
|
48
|
+
return VALID_RULE;
|
|
49
|
+
}
|
|
50
|
+
return invalidRule(this, context);
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Float rule - validates float type
|
|
55
|
+
*/
|
|
56
|
+
const floatRule = {
|
|
57
|
+
name: "float",
|
|
58
|
+
defaultErrorMessage: "The :input must be a float",
|
|
59
|
+
async validate(value, context) {
|
|
60
|
+
if (Number.isFinite(value) && !Number.isInteger(value)) {
|
|
61
|
+
return VALID_RULE;
|
|
62
|
+
}
|
|
63
|
+
return invalidRule(this, context);
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Scalar rule - validates scalar value (string, number, or boolean)
|
|
68
|
+
*/
|
|
69
|
+
const scalarRule = {
|
|
70
|
+
name: "scalar",
|
|
71
|
+
defaultErrorMessage: "The :input must be a scalar value",
|
|
72
|
+
async validate(value, context) {
|
|
73
|
+
if (["string", "number", "boolean"].includes(typeof value)) {
|
|
74
|
+
return VALID_RULE;
|
|
75
|
+
}
|
|
76
|
+
return invalidRule(this, context);
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Object rule - validates object type
|
|
81
|
+
*/
|
|
82
|
+
const objectRule = {
|
|
83
|
+
name: "object",
|
|
84
|
+
defaultErrorMessage: "The :input must be an object",
|
|
85
|
+
async validate(value, context) {
|
|
86
|
+
if (isPlainObject(value)) {
|
|
87
|
+
return VALID_RULE;
|
|
88
|
+
}
|
|
89
|
+
return invalidRule(this, context);
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* Array rule - validates array type
|
|
94
|
+
*/
|
|
95
|
+
const arrayRule = {
|
|
96
|
+
name: "array",
|
|
97
|
+
defaultErrorMessage: "The :input must be an array",
|
|
98
|
+
async validate(value, context) {
|
|
99
|
+
if (Array.isArray(value)) {
|
|
100
|
+
return VALID_RULE;
|
|
101
|
+
}
|
|
102
|
+
return invalidRule(this, context);
|
|
103
|
+
},
|
|
104
|
+
};export{arrayRule,booleanRule,floatRule,intRule,numberRule,objectRule,scalarRule,stringRule};//# sourceMappingURL=type-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-rules.js","sources":["../../../src/rules/common/type-rules.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Schema, SchemaRule } from "../../types";
|
|
2
|
+
/**
|
|
3
|
+
* Unknown key rule - validates that object doesn't have unknown keys
|
|
4
|
+
*/
|
|
5
|
+
export declare const unknownKeyRule: SchemaRule<{
|
|
6
|
+
schema: Schema;
|
|
7
|
+
allowedKeys: string[];
|
|
8
|
+
}>;
|
|
9
|
+
//# sourceMappingURL=unknown-key.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unknown-key.d.ts","sourceRoot":"","sources":["../../../src/rules/common/unknown-key.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEtD;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,UAAU,CAAC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CAkBA,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import'@mongez/reinforcements';import {invalidRule,VALID_RULE}from'../../helpers/validation-helpers.js';/**
|
|
2
|
+
* Unknown key rule - validates that object doesn't have unknown keys
|
|
3
|
+
*/
|
|
4
|
+
const unknownKeyRule = {
|
|
5
|
+
name: "unknownKeys",
|
|
6
|
+
defaultErrorMessage: "The :input contains unknown keys: :unknownKeys",
|
|
7
|
+
async validate(value, context) {
|
|
8
|
+
const schema = this.context.options.schema;
|
|
9
|
+
const allowedKeys = [...Object.keys(schema), ...(this.context.options.allowedKeys || [])];
|
|
10
|
+
const unknownKeys = Object.keys(value).filter((key) => !allowedKeys.includes(key));
|
|
11
|
+
if (unknownKeys.length > 0) {
|
|
12
|
+
this.context.options.unknownKeys = unknownKeys.join(", ");
|
|
13
|
+
console.log("Options", this.context.options);
|
|
14
|
+
return invalidRule(this, context);
|
|
15
|
+
}
|
|
16
|
+
return VALID_RULE;
|
|
17
|
+
},
|
|
18
|
+
};export{unknownKeyRule};//# sourceMappingURL=unknown-key.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unknown-key.js","sources":["../../../src/rules/common/unknown-key.ts"],"sourcesContent":[null],"names":[],"mappings":"wGAGA;;AAEG;AACU,MAAA,cAAc,GAGtB;AACH,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,mBAAmB,EAAE,gDAAgD;AACrE,IAAA,MAAM,QAAQ,CAAC,KAAU,EAAE,OAAO,EAAA;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;QAC3C,MAAM,WAAW,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;QAE1F,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAEnF,QAAA,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AACzB,YAAA,IAAI,CAAC,OAAO,CAAC,OAAe,CAAC,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnE,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAE7C,YAAA,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,SAAA;AAED,QAAA,OAAO,UAAU,CAAC;KACnB;"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { SchemaRule } from "../../types";
|
|
2
|
+
/**
|
|
3
|
+
* Forbidden if rule - field is forbidden if another field equals a specific value
|
|
4
|
+
* Supports both global and sibling scope
|
|
5
|
+
*/
|
|
6
|
+
export declare const forbiddenIfRule: SchemaRule<{
|
|
7
|
+
field: string;
|
|
8
|
+
value: any;
|
|
9
|
+
scope?: "global" | "sibling";
|
|
10
|
+
}>;
|
|
11
|
+
/**
|
|
12
|
+
* Forbidden if not rule - field is forbidden if another field does NOT equal a specific value
|
|
13
|
+
* Supports both global and sibling scope
|
|
14
|
+
*/
|
|
15
|
+
export declare const forbiddenIfNotRule: SchemaRule<{
|
|
16
|
+
field: string;
|
|
17
|
+
value: any;
|
|
18
|
+
scope?: "global" | "sibling";
|
|
19
|
+
}>;
|
|
20
|
+
/**
|
|
21
|
+
* Forbidden if empty rule - field is forbidden if another field is empty
|
|
22
|
+
* Supports both global and sibling scope
|
|
23
|
+
*/
|
|
24
|
+
export declare const forbiddenIfEmptyRule: SchemaRule<{
|
|
25
|
+
field: string;
|
|
26
|
+
scope?: "global" | "sibling";
|
|
27
|
+
}>;
|
|
28
|
+
/**
|
|
29
|
+
* Forbidden if not empty rule - field is forbidden if another field is not empty
|
|
30
|
+
* Supports both global and sibling scope
|
|
31
|
+
*/
|
|
32
|
+
export declare const forbiddenIfNotEmptyRule: SchemaRule<{
|
|
33
|
+
field: string;
|
|
34
|
+
scope?: "global" | "sibling";
|
|
35
|
+
}>;
|
|
36
|
+
/**
|
|
37
|
+
* Forbidden if in rule - field is forbidden if another field's value is in the given array
|
|
38
|
+
* Supports both global and sibling scope
|
|
39
|
+
*/
|
|
40
|
+
export declare const forbiddenIfInRule: SchemaRule<{
|
|
41
|
+
field: string;
|
|
42
|
+
values: any[];
|
|
43
|
+
scope?: "global" | "sibling";
|
|
44
|
+
}>;
|
|
45
|
+
/**
|
|
46
|
+
* Forbidden if not in rule - field is forbidden if another field's value is NOT in the given array
|
|
47
|
+
* Supports both global and sibling scope
|
|
48
|
+
*/
|
|
49
|
+
export declare const forbiddenIfNotInRule: SchemaRule<{
|
|
50
|
+
field: string;
|
|
51
|
+
values: any[];
|
|
52
|
+
scope?: "global" | "sibling";
|
|
53
|
+
}>;
|
|
54
|
+
//# sourceMappingURL=forbidden-if-rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forbidden-if-rules.d.ts","sourceRoot":"","sources":["../../../src/rules/conditional/forbidden-if-rules.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,UAAU,CAAC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B,CAgBA,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,UAAU,CAAC;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B,CAgBA,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,UAAU,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B,CAeA,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,UAAU,CAAC;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B,CAeA,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,UAAU,CAAC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,GAAG,EAAE,CAAC;IACd,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B,CAgBA,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,UAAU,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,GAAG,EAAE,CAAC;IACd,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B,CAgBA,CAAC"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import {getFieldValue}from'../../helpers/get-field-value.js';import {invalidRule,VALID_RULE}from'../../helpers/validation-helpers.js';import {isEmptyValue}from'../../helpers/is-empty-value.js';/**
|
|
2
|
+
* Forbidden if rule - field is forbidden if another field equals a specific value
|
|
3
|
+
* Supports both global and sibling scope
|
|
4
|
+
*/
|
|
5
|
+
const forbiddenIfRule = {
|
|
6
|
+
name: "forbiddenIf",
|
|
7
|
+
description: "The field is forbidden if another field equals a specific value",
|
|
8
|
+
sortOrder: -2,
|
|
9
|
+
defaultErrorMessage: "The :input is forbidden",
|
|
10
|
+
async validate(value, context) {
|
|
11
|
+
const { value: expectedValue } = this.context.options;
|
|
12
|
+
const fieldValue = getFieldValue(this, context);
|
|
13
|
+
// Field is forbidden if it has a value and the other field equals the expected value
|
|
14
|
+
if (!isEmptyValue(value) && fieldValue === expectedValue) {
|
|
15
|
+
return invalidRule(this, context);
|
|
16
|
+
}
|
|
17
|
+
return VALID_RULE;
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Forbidden if not rule - field is forbidden if another field does NOT equal a specific value
|
|
22
|
+
* Supports both global and sibling scope
|
|
23
|
+
*/
|
|
24
|
+
const forbiddenIfNotRule = {
|
|
25
|
+
name: "forbiddenIfNot",
|
|
26
|
+
description: "The field is forbidden if another field does NOT equal a specific value",
|
|
27
|
+
sortOrder: -2,
|
|
28
|
+
defaultErrorMessage: "The :input is forbidden",
|
|
29
|
+
async validate(value, context) {
|
|
30
|
+
const { value: expectedValue } = this.context.options;
|
|
31
|
+
const fieldValue = getFieldValue(this, context);
|
|
32
|
+
// Field is forbidden if it has a value and the other field does NOT equal the expected value
|
|
33
|
+
if (!isEmptyValue(value) && fieldValue !== expectedValue) {
|
|
34
|
+
return invalidRule(this, context);
|
|
35
|
+
}
|
|
36
|
+
return VALID_RULE;
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Forbidden if empty rule - field is forbidden if another field is empty
|
|
41
|
+
* Supports both global and sibling scope
|
|
42
|
+
*/
|
|
43
|
+
const forbiddenIfEmptyRule = {
|
|
44
|
+
name: "forbiddenIfEmpty",
|
|
45
|
+
description: "The field is forbidden if another field is empty",
|
|
46
|
+
sortOrder: -2,
|
|
47
|
+
defaultErrorMessage: "The :input is forbidden",
|
|
48
|
+
async validate(value, context) {
|
|
49
|
+
const fieldValue = getFieldValue(this, context);
|
|
50
|
+
// Field is forbidden if it has a value and the other field is empty
|
|
51
|
+
if (!isEmptyValue(value) && isEmptyValue(fieldValue)) {
|
|
52
|
+
return invalidRule(this, context);
|
|
53
|
+
}
|
|
54
|
+
return VALID_RULE;
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Forbidden if not empty rule - field is forbidden if another field is not empty
|
|
59
|
+
* Supports both global and sibling scope
|
|
60
|
+
*/
|
|
61
|
+
const forbiddenIfNotEmptyRule = {
|
|
62
|
+
name: "forbiddenIfNotEmpty",
|
|
63
|
+
description: "The field is forbidden if another field is not empty",
|
|
64
|
+
sortOrder: -2,
|
|
65
|
+
defaultErrorMessage: "The :input is forbidden",
|
|
66
|
+
async validate(value, context) {
|
|
67
|
+
const fieldValue = getFieldValue(this, context);
|
|
68
|
+
// Field is forbidden if it has a value and the other field is not empty
|
|
69
|
+
if (!isEmptyValue(value) && !isEmptyValue(fieldValue)) {
|
|
70
|
+
return invalidRule(this, context);
|
|
71
|
+
}
|
|
72
|
+
return VALID_RULE;
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Forbidden if in rule - field is forbidden if another field's value is in the given array
|
|
77
|
+
* Supports both global and sibling scope
|
|
78
|
+
*/
|
|
79
|
+
const forbiddenIfInRule = {
|
|
80
|
+
name: "forbiddenIfIn",
|
|
81
|
+
description: "The field is forbidden if another field's value is in the given array",
|
|
82
|
+
sortOrder: -2,
|
|
83
|
+
defaultErrorMessage: "The :input is forbidden",
|
|
84
|
+
async validate(value, context) {
|
|
85
|
+
const { values } = this.context.options;
|
|
86
|
+
const fieldValue = getFieldValue(this, context);
|
|
87
|
+
// Field is forbidden if it has a value and the other field's value is in the array
|
|
88
|
+
if (!isEmptyValue(value) && values.includes(fieldValue)) {
|
|
89
|
+
return invalidRule(this, context);
|
|
90
|
+
}
|
|
91
|
+
return VALID_RULE;
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
* Forbidden if not in rule - field is forbidden if another field's value is NOT in the given array
|
|
96
|
+
* Supports both global and sibling scope
|
|
97
|
+
*/
|
|
98
|
+
const forbiddenIfNotInRule = {
|
|
99
|
+
name: "forbiddenIfNotIn",
|
|
100
|
+
description: "The field is forbidden if another field's value is NOT in the given array",
|
|
101
|
+
sortOrder: -2,
|
|
102
|
+
defaultErrorMessage: "The :input is forbidden",
|
|
103
|
+
async validate(value, context) {
|
|
104
|
+
const { values } = this.context.options;
|
|
105
|
+
const fieldValue = getFieldValue(this, context);
|
|
106
|
+
// Field is forbidden if it has a value and the other field's value is NOT in the array
|
|
107
|
+
if (!isEmptyValue(value) && !values.includes(fieldValue)) {
|
|
108
|
+
return invalidRule(this, context);
|
|
109
|
+
}
|
|
110
|
+
return VALID_RULE;
|
|
111
|
+
},
|
|
112
|
+
};export{forbiddenIfEmptyRule,forbiddenIfInRule,forbiddenIfNotEmptyRule,forbiddenIfNotInRule,forbiddenIfNotRule,forbiddenIfRule};//# sourceMappingURL=forbidden-if-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forbidden-if-rules.js","sources":["../../../src/rules/conditional/forbidden-if-rules.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from "./required-if-rules";
|
|
2
|
+
export * from "./required-unless-rules";
|
|
3
|
+
export * from "./required-with-rules";
|
|
4
|
+
export * from "./required-without-rules";
|
|
5
|
+
export * from "./present-if-rules";
|
|
6
|
+
export * from "./present-unless-rules";
|
|
7
|
+
export * from "./present-with-rules";
|
|
8
|
+
export * from "./present-without-rules";
|
|
9
|
+
export * from "./forbidden-if-rules";
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rules/conditional/index.ts"],"names":[],"mappings":"AACA,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AAGzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AAGxC,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { SchemaRule } from "../../types";
|
|
2
|
+
/**
|
|
3
|
+
* Present if rule - field must be present if another field equals a specific value
|
|
4
|
+
* Supports both global and sibling scope
|
|
5
|
+
*/
|
|
6
|
+
export declare const presentIfRule: SchemaRule<{
|
|
7
|
+
field: string;
|
|
8
|
+
value: any;
|
|
9
|
+
scope?: "global" | "sibling";
|
|
10
|
+
}>;
|
|
11
|
+
/**
|
|
12
|
+
* Present if empty rule - field must be present if another field is empty
|
|
13
|
+
* Supports both global and sibling scope
|
|
14
|
+
*/
|
|
15
|
+
export declare const presentIfEmptyRule: SchemaRule<{
|
|
16
|
+
field: string;
|
|
17
|
+
scope?: "global" | "sibling";
|
|
18
|
+
}>;
|
|
19
|
+
/**
|
|
20
|
+
* Present if not empty rule - field must be present if another field is not empty
|
|
21
|
+
* Supports both global and sibling scope
|
|
22
|
+
*/
|
|
23
|
+
export declare const presentIfNotEmptyRule: SchemaRule<{
|
|
24
|
+
field: string;
|
|
25
|
+
scope?: "global" | "sibling";
|
|
26
|
+
}>;
|
|
27
|
+
/**
|
|
28
|
+
* Present if in rule - field must be present if another field's value is in the given array
|
|
29
|
+
* Supports both global and sibling scope
|
|
30
|
+
*/
|
|
31
|
+
export declare const presentIfInRule: SchemaRule<{
|
|
32
|
+
field: string;
|
|
33
|
+
values: any[];
|
|
34
|
+
scope?: "global" | "sibling";
|
|
35
|
+
}>;
|
|
36
|
+
/**
|
|
37
|
+
* Present if not in rule - field must be present if another field's value is NOT in the given array
|
|
38
|
+
* Supports both global and sibling scope
|
|
39
|
+
*/
|
|
40
|
+
export declare const presentIfNotInRule: SchemaRule<{
|
|
41
|
+
field: string;
|
|
42
|
+
values: any[];
|
|
43
|
+
scope?: "global" | "sibling";
|
|
44
|
+
}>;
|
|
45
|
+
//# sourceMappingURL=present-if-rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"present-if-rules.d.ts","sourceRoot":"","sources":["../../../src/rules/conditional/present-if-rules.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,UAAU,CAAC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B,CAiBA,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,UAAU,CAAC;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B,CAgBA,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,UAAU,CAAC;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B,CAgBA,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,UAAU,CAAC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,GAAG,EAAE,CAAC;IACd,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B,CAiBA,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,UAAU,CAAC;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,GAAG,EAAE,CAAC;IACd,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B,CAiBA,CAAC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import {getFieldValue}from'../../helpers/get-field-value.js';import {invalidRule,VALID_RULE}from'../../helpers/validation-helpers.js';import {isEmptyValue}from'../../helpers/is-empty-value.js';/**
|
|
2
|
+
* Present if rule - field must be present if another field equals a specific value
|
|
3
|
+
* Supports both global and sibling scope
|
|
4
|
+
*/
|
|
5
|
+
const presentIfRule = {
|
|
6
|
+
name: "presentIf",
|
|
7
|
+
description: "The field must be present if another field equals a specific value",
|
|
8
|
+
sortOrder: -2,
|
|
9
|
+
requiresValue: false,
|
|
10
|
+
defaultErrorMessage: "The :input field must be present",
|
|
11
|
+
async validate(value, context) {
|
|
12
|
+
const { value: expectedValue } = this.context.options;
|
|
13
|
+
const fieldValue = getFieldValue(this, context);
|
|
14
|
+
// Field must be present if the other field equals the expected value
|
|
15
|
+
if (value === undefined && fieldValue === expectedValue) {
|
|
16
|
+
return invalidRule(this, context);
|
|
17
|
+
}
|
|
18
|
+
return VALID_RULE;
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Present if empty rule - field must be present if another field is empty
|
|
23
|
+
* Supports both global and sibling scope
|
|
24
|
+
*/
|
|
25
|
+
const presentIfEmptyRule = {
|
|
26
|
+
name: "presentIfEmpty",
|
|
27
|
+
description: "The field must be present if another field is empty",
|
|
28
|
+
sortOrder: -2,
|
|
29
|
+
requiresValue: false,
|
|
30
|
+
defaultErrorMessage: "The :input field must be present",
|
|
31
|
+
async validate(value, context) {
|
|
32
|
+
const fieldValue = getFieldValue(this, context);
|
|
33
|
+
// Field must be present if the other field is empty
|
|
34
|
+
if (value === undefined && isEmptyValue(fieldValue)) {
|
|
35
|
+
return invalidRule(this, context);
|
|
36
|
+
}
|
|
37
|
+
return VALID_RULE;
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Present if not empty rule - field must be present if another field is not empty
|
|
42
|
+
* Supports both global and sibling scope
|
|
43
|
+
*/
|
|
44
|
+
const presentIfNotEmptyRule = {
|
|
45
|
+
name: "presentIfNotEmpty",
|
|
46
|
+
description: "The field must be present if another field is not empty",
|
|
47
|
+
sortOrder: -2,
|
|
48
|
+
requiresValue: false,
|
|
49
|
+
defaultErrorMessage: "The :input field must be present",
|
|
50
|
+
async validate(value, context) {
|
|
51
|
+
const fieldValue = getFieldValue(this, context);
|
|
52
|
+
// Field must be present if the other field is not empty
|
|
53
|
+
if (value === undefined && !isEmptyValue(fieldValue)) {
|
|
54
|
+
return invalidRule(this, context);
|
|
55
|
+
}
|
|
56
|
+
return VALID_RULE;
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Present if in rule - field must be present if another field's value is in the given array
|
|
61
|
+
* Supports both global and sibling scope
|
|
62
|
+
*/
|
|
63
|
+
const presentIfInRule = {
|
|
64
|
+
name: "presentIfIn",
|
|
65
|
+
description: "The field must be present if another field's value is in the given array",
|
|
66
|
+
sortOrder: -2,
|
|
67
|
+
requiresValue: false,
|
|
68
|
+
defaultErrorMessage: "The :input field must be present",
|
|
69
|
+
async validate(value, context) {
|
|
70
|
+
const { values } = this.context.options;
|
|
71
|
+
const fieldValue = getFieldValue(this, context);
|
|
72
|
+
// Field must be present if the other field's value is in the array
|
|
73
|
+
if (value === undefined && values.includes(fieldValue)) {
|
|
74
|
+
return invalidRule(this, context);
|
|
75
|
+
}
|
|
76
|
+
return VALID_RULE;
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Present if not in rule - field must be present if another field's value is NOT in the given array
|
|
81
|
+
* Supports both global and sibling scope
|
|
82
|
+
*/
|
|
83
|
+
const presentIfNotInRule = {
|
|
84
|
+
name: "presentIfNotIn",
|
|
85
|
+
description: "The field must be present if another field's value is NOT in the given array",
|
|
86
|
+
sortOrder: -2,
|
|
87
|
+
requiresValue: false,
|
|
88
|
+
defaultErrorMessage: "The :input field must be present",
|
|
89
|
+
async validate(value, context) {
|
|
90
|
+
const { values } = this.context.options;
|
|
91
|
+
const fieldValue = getFieldValue(this, context);
|
|
92
|
+
// Field must be present if the other field's value is NOT in the array
|
|
93
|
+
if (value === undefined && !values.includes(fieldValue)) {
|
|
94
|
+
return invalidRule(this, context);
|
|
95
|
+
}
|
|
96
|
+
return VALID_RULE;
|
|
97
|
+
},
|
|
98
|
+
};export{presentIfEmptyRule,presentIfInRule,presentIfNotEmptyRule,presentIfNotInRule,presentIfRule};//# sourceMappingURL=present-if-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"present-if-rules.js","sources":["../../../src/rules/conditional/present-if-rules.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { SchemaRule } from "../../types";
|
|
2
|
+
/**
|
|
3
|
+
* Present unless rule - field must be present unless another field equals a specific value
|
|
4
|
+
* Supports both global and sibling scope
|
|
5
|
+
*/
|
|
6
|
+
export declare const presentUnlessRule: SchemaRule<{
|
|
7
|
+
field: string;
|
|
8
|
+
value: any;
|
|
9
|
+
scope?: "global" | "sibling";
|
|
10
|
+
}>;
|
|
11
|
+
//# sourceMappingURL=present-unless-rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"present-unless-rules.d.ts","sourceRoot":"","sources":["../../../src/rules/conditional/present-unless-rules.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,UAAU,CAAC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B,CAkBA,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {getFieldValue}from'../../helpers/get-field-value.js';import {invalidRule,VALID_RULE}from'../../helpers/validation-helpers.js';/**
|
|
2
|
+
* Present unless rule - field must be present unless another field equals a specific value
|
|
3
|
+
* Supports both global and sibling scope
|
|
4
|
+
*/
|
|
5
|
+
const presentUnlessRule = {
|
|
6
|
+
name: "presentUnless",
|
|
7
|
+
description: "The field must be present unless another field equals a specific value",
|
|
8
|
+
sortOrder: -2,
|
|
9
|
+
requiresValue: false,
|
|
10
|
+
defaultErrorMessage: "The :input field must be present",
|
|
11
|
+
async validate(value, context) {
|
|
12
|
+
const { value: expectedValue } = this.context.options;
|
|
13
|
+
const fieldValue = getFieldValue(this, context);
|
|
14
|
+
// Field must be present unless the other field equals the expected value
|
|
15
|
+
if (value === undefined && fieldValue !== expectedValue) {
|
|
16
|
+
return invalidRule(this, context);
|
|
17
|
+
}
|
|
18
|
+
return VALID_RULE;
|
|
19
|
+
},
|
|
20
|
+
};export{presentUnlessRule};//# sourceMappingURL=present-unless-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"present-unless-rules.js","sources":["../../../src/rules/conditional/present-unless-rules.ts"],"sourcesContent":[null],"names":[],"mappings":"sIAGA;;;AAGG;AACU,MAAA,iBAAiB,GAIzB;AACH,IAAA,IAAI,EAAE,eAAe;AACrB,IAAA,WAAW,EACT,wEAAwE;IAC1E,SAAS,EAAE,CAAC,CAAC;AACb,IAAA,aAAa,EAAE,KAAK;AACpB,IAAA,mBAAmB,EAAE,kCAAkC;AACvD,IAAA,MAAM,QAAQ,CAAC,KAAU,EAAE,OAAO,EAAA;QAChC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACtD,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;;AAGhD,QAAA,IAAI,KAAK,KAAK,SAAS,IAAI,UAAU,KAAK,aAAa,EAAE;AACvD,YAAA,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,SAAA;AAED,QAAA,OAAO,UAAU,CAAC;KACnB;"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { SchemaRule } from "../../types";
|
|
2
|
+
/**
|
|
3
|
+
* Present with rule - field must be present if another field is present
|
|
4
|
+
* Supports both global and sibling scope
|
|
5
|
+
*/
|
|
6
|
+
export declare const presentWithRule: SchemaRule<{
|
|
7
|
+
field: string;
|
|
8
|
+
scope?: "global" | "sibling";
|
|
9
|
+
}>;
|
|
10
|
+
/**
|
|
11
|
+
* Present with all rule - field must be present if all specified fields are present
|
|
12
|
+
* Supports both global and sibling scope
|
|
13
|
+
*/
|
|
14
|
+
export declare const presentWithAllRule: SchemaRule<{
|
|
15
|
+
fields: string[];
|
|
16
|
+
scope?: "global" | "sibling";
|
|
17
|
+
}>;
|
|
18
|
+
/**
|
|
19
|
+
* Present with any rule - field must be present if any of the specified fields is present
|
|
20
|
+
* Supports both global and sibling scope
|
|
21
|
+
*/
|
|
22
|
+
export declare const presentWithAnyRule: SchemaRule<{
|
|
23
|
+
fields: string[];
|
|
24
|
+
scope?: "global" | "sibling";
|
|
25
|
+
}>;
|
|
26
|
+
//# sourceMappingURL=present-with-rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"present-with-rules.d.ts","sourceRoot":"","sources":["../../../src/rules/conditional/present-with-rules.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,UAAU,CAAC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B,CAgBA,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,UAAU,CAAC;IAC1C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B,CAoBA,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,UAAU,CAAC;IAC1C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B,CAqBA,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import {get}from'@mongez/reinforcements';import {getFieldValue}from'../../helpers/get-field-value.js';import {invalidRule,VALID_RULE}from'../../helpers/validation-helpers.js';/**
|
|
2
|
+
* Present with rule - field must be present if another field is present
|
|
3
|
+
* Supports both global and sibling scope
|
|
4
|
+
*/
|
|
5
|
+
const presentWithRule = {
|
|
6
|
+
name: "presentWith",
|
|
7
|
+
description: "The field must be present if another field is present",
|
|
8
|
+
sortOrder: -2,
|
|
9
|
+
requiresValue: false,
|
|
10
|
+
defaultErrorMessage: "The :input field must be present",
|
|
11
|
+
async validate(value, context) {
|
|
12
|
+
const fieldValue = getFieldValue(this, context);
|
|
13
|
+
// The field must be present if the other field is present
|
|
14
|
+
if (value === undefined && fieldValue !== undefined) {
|
|
15
|
+
return invalidRule(this, context);
|
|
16
|
+
}
|
|
17
|
+
return VALID_RULE;
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Present with all rule - field must be present if all specified fields are present
|
|
22
|
+
* Supports both global and sibling scope
|
|
23
|
+
*/
|
|
24
|
+
const presentWithAllRule = {
|
|
25
|
+
name: "presentWithAll",
|
|
26
|
+
description: "The field must be present if all specified fields are present",
|
|
27
|
+
sortOrder: -2,
|
|
28
|
+
requiresValue: false,
|
|
29
|
+
defaultErrorMessage: "The :input field must be present",
|
|
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 => get(source, field) !== undefined);
|
|
35
|
+
// Field must be present if all other fields are present
|
|
36
|
+
if (value === undefined && allPresent) {
|
|
37
|
+
return invalidRule(this, context);
|
|
38
|
+
}
|
|
39
|
+
return VALID_RULE;
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Present with any rule - field must be present if any of the specified fields is present
|
|
44
|
+
* Supports both global and sibling scope
|
|
45
|
+
*/
|
|
46
|
+
const presentWithAnyRule = {
|
|
47
|
+
name: "presentWithAny",
|
|
48
|
+
description: "The field must be present if any of the specified fields is present",
|
|
49
|
+
sortOrder: -2,
|
|
50
|
+
requiresValue: false,
|
|
51
|
+
defaultErrorMessage: "The :input field must be present",
|
|
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 => get(source, field) !== undefined);
|
|
57
|
+
// Field must be present if any other field is present
|
|
58
|
+
if (value === undefined && anyPresent) {
|
|
59
|
+
return invalidRule(this, context);
|
|
60
|
+
}
|
|
61
|
+
return VALID_RULE;
|
|
62
|
+
},
|
|
63
|
+
};export{presentWithAllRule,presentWithAnyRule,presentWithRule};//# sourceMappingURL=present-with-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"present-with-rules.js","sources":["../../../src/rules/conditional/present-with-rules.ts"],"sourcesContent":[null],"names":[],"mappings":"+KAIA;;;AAGG;AACU,MAAA,eAAe,GAGvB;AACH,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,WAAW,EAAE,uDAAuD;IACpE,SAAS,EAAE,CAAC,CAAC;AACb,IAAA,aAAa,EAAE,KAAK;AACpB,IAAA,mBAAmB,EAAE,kCAAkC;AACvD,IAAA,MAAM,QAAQ,CAAC,KAAU,EAAE,OAAO,EAAA;QAChC,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;;AAGhD,QAAA,IAAI,KAAK,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE;AACnD,YAAA,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,SAAA;AAED,QAAA,OAAO,UAAU,CAAC;KACnB;EACD;AAEF;;;AAGG;AACU,MAAA,kBAAkB,GAG1B;AACH,IAAA,IAAI,EAAE,gBAAgB;AACtB,IAAA,WAAW,EAAE,+DAA+D;IAC5E,SAAS,EAAE,CAAC,CAAC;AACb,IAAA,aAAa,EAAE,KAAK;AACpB,IAAA,mBAAmB,EAAE,kCAAkC;AACvD,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;;AAGxE,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,SAAS,CAAC,CAAC;;AAG3E,QAAA,IAAI,KAAK,KAAK,SAAS,IAAI,UAAU,EAAE;AACrC,YAAA,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,SAAA;AAED,QAAA,OAAO,UAAU,CAAC;KACnB;EACD;AAEF;;;AAGG;AACU,MAAA,kBAAkB,GAG1B;AACH,IAAA,IAAI,EAAE,gBAAgB;AACtB,IAAA,WAAW,EACT,qEAAqE;IACvE,SAAS,EAAE,CAAC,CAAC;AACb,IAAA,aAAa,EAAE,KAAK;AACpB,IAAA,mBAAmB,EAAE,kCAAkC;AACvD,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;;AAGxE,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,SAAS,CAAC,CAAC;;AAG1E,QAAA,IAAI,KAAK,KAAK,SAAS,IAAI,UAAU,EAAE;AACrC,YAAA,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,SAAA;AAED,QAAA,OAAO,UAAU,CAAC;KACnB;"}
|