@warlock.js/seal 4.0.162 → 4.0.163
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 +56 -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 +26 -0
- package/cjs/helpers/validation-helpers.d.ts.map +1 -0
- package/cjs/helpers/validation-helpers.js +74 -0
- package/cjs/helpers/validation-helpers.js.map +1 -0
- package/cjs/index.d.ts +30 -0
- package/cjs/index.d.ts.map +1 -0
- package/cjs/index.js +1 -0
- package/cjs/index.js.map +1 -0
- 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 +22 -0
- package/cjs/mutators/number-mutators.d.ts.map +1 -0
- package/cjs/mutators/number-mutators.js +53 -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 +48 -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 +67 -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 +45 -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 +69 -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 +39 -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 +38 -0
- package/cjs/rules/common/type-rules.d.ts.map +1 -0
- package/cjs/rules/common/type-rules.js +117 -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 +17 -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 +118 -0
- package/cjs/rules/conditional/forbidden-if-rules.js.map +1 -0
- package/cjs/rules/conditional/index.d.ts +11 -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 +100 -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 +22 -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 +70 -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 +70 -0
- package/cjs/rules/conditional/present-without-rules.js.map +1 -0
- package/cjs/rules/conditional/required-if-rules.d.ts +77 -0
- package/cjs/rules/conditional/required-if-rules.d.ts.map +1 -0
- package/cjs/rules/conditional/required-if-rules.js +205 -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 +22 -0
- package/cjs/rules/conditional/required-unless-rules.js.map +1 -0
- package/cjs/rules/conditional/required-when-rule.d.ts +18 -0
- package/cjs/rules/conditional/required-when-rule.d.ts.map +1 -0
- package/cjs/rules/conditional/required-when-rule.js +26 -0
- package/cjs/rules/conditional/required-when-rule.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 +64 -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 +64 -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 +14 -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 +80 -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 +68 -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 +94 -0
- package/cjs/rules/date/date-field-comparison-rules.js.map +1 -0
- package/cjs/rules/date/date-period-rules.d.ts +124 -0
- package/cjs/rules/date/date-period-rules.d.ts.map +1 -0
- package/cjs/rules/date/date-period-rules.js +605 -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 +60 -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 +71 -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 +288 -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 +60 -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 +30 -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 +107 -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 +245 -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 +117 -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 +117 -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 +15 -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 +14 -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 +56 -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/standard-schema/index.d.ts +4 -0
- package/cjs/standard-schema/index.d.ts.map +1 -0
- package/cjs/standard-schema/json-schema.d.ts +61 -0
- package/cjs/standard-schema/json-schema.d.ts.map +1 -0
- package/cjs/standard-schema/json-schema.js +85 -0
- package/cjs/standard-schema/json-schema.js.map +1 -0
- package/cjs/standard-schema/map-result.d.ts +18 -0
- package/cjs/standard-schema/map-result.d.ts.map +1 -0
- package/cjs/standard-schema/map-result.js +27 -0
- package/cjs/standard-schema/map-result.js.map +1 -0
- package/cjs/standard-schema/types.d.ts +93 -0
- package/cjs/standard-schema/types.d.ts.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 +47 -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 +32 -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 +58 -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 +29 -0
- package/cjs/validators/any-validator.d.ts.map +1 -0
- package/cjs/validators/any-validator.js +31 -0
- package/cjs/validators/any-validator.js.map +1 -0
- package/cjs/validators/array-validator.d.ts +72 -0
- package/cjs/validators/array-validator.d.ts.map +1 -0
- package/cjs/validators/array-validator.js +162 -0
- package/cjs/validators/array-validator.js.map +1 -0
- package/cjs/validators/base-validator.d.ts +425 -0
- package/cjs/validators/base-validator.d.ts.map +1 -0
- package/cjs/validators/base-validator.js +637 -0
- package/cjs/validators/base-validator.js.map +1 -0
- package/cjs/validators/boolean-validator.d.ts +67 -0
- package/cjs/validators/boolean-validator.d.ts.map +1 -0
- package/cjs/validators/boolean-validator.js +105 -0
- package/cjs/validators/boolean-validator.js.map +1 -0
- package/cjs/validators/computed-validator.d.ts +75 -0
- package/cjs/validators/computed-validator.d.ts.map +1 -0
- package/cjs/validators/computed-validator.js +124 -0
- package/cjs/validators/computed-validator.js.map +1 -0
- package/cjs/validators/date-validator.d.ts +330 -0
- package/cjs/validators/date-validator.d.ts.map +1 -0
- package/cjs/validators/date-validator.js +614 -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 +31 -0
- package/cjs/validators/index.d.ts.map +1 -0
- package/cjs/validators/int-validator.d.ts +19 -0
- package/cjs/validators/int-validator.d.ts.map +1 -0
- package/cjs/validators/int-validator.js +21 -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/methods/equality-conditional-methods.d.ts +88 -0
- package/cjs/validators/methods/equality-conditional-methods.d.ts.map +1 -0
- package/cjs/validators/methods/equality-conditional-methods.js +118 -0
- package/cjs/validators/methods/equality-conditional-methods.js.map +1 -0
- package/cjs/validators/methods/forbidden-methods.d.ts +58 -0
- package/cjs/validators/methods/forbidden-methods.d.ts.map +1 -0
- package/cjs/validators/methods/forbidden-methods.js +122 -0
- package/cjs/validators/methods/forbidden-methods.js.map +1 -0
- package/cjs/validators/methods/present-methods.d.ts +102 -0
- package/cjs/validators/methods/present-methods.d.ts.map +1 -0
- package/cjs/validators/methods/present-methods.js +229 -0
- package/cjs/validators/methods/present-methods.js.map +1 -0
- package/cjs/validators/methods/required-methods.d.ts +174 -0
- package/cjs/validators/methods/required-methods.d.ts.map +1 -0
- package/cjs/validators/methods/required-methods.js +246 -0
- package/cjs/validators/methods/required-methods.js.map +1 -0
- package/cjs/validators/number-validator.d.ts +166 -0
- package/cjs/validators/number-validator.d.ts.map +1 -0
- package/cjs/validators/number-validator.js +307 -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 +233 -0
- package/cjs/validators/object-validator.d.ts.map +1 -0
- package/cjs/validators/object-validator.js +517 -0
- package/cjs/validators/object-validator.js.map +1 -0
- package/cjs/validators/primitive-validator.d.ts +70 -0
- package/cjs/validators/primitive-validator.d.ts.map +1 -0
- package/cjs/validators/primitive-validator.js +80 -0
- package/cjs/validators/primitive-validator.js.map +1 -0
- package/cjs/validators/record-validator.d.ts +54 -0
- package/cjs/validators/record-validator.d.ts.map +1 -0
- package/cjs/validators/record-validator.js +100 -0
- package/cjs/validators/record-validator.js.map +1 -0
- package/cjs/validators/scalar-validator.d.ts +93 -0
- package/cjs/validators/scalar-validator.d.ts.map +1 -0
- package/cjs/validators/scalar-validator.js +149 -0
- package/cjs/validators/scalar-validator.js.map +1 -0
- package/cjs/validators/string-validator.d.ts +189 -0
- package/cjs/validators/string-validator.d.ts.map +1 -0
- package/cjs/validators/string-validator.js +387 -0
- package/cjs/validators/string-validator.js.map +1 -0
- package/cjs/validators/tuple-validator.d.ts +56 -0
- package/cjs/validators/tuple-validator.d.ts.map +1 -0
- package/cjs/validators/tuple-validator.js +121 -0
- package/cjs/validators/tuple-validator.js.map +1 -0
- package/cjs/validators/union-validator.d.ts +55 -0
- package/cjs/validators/union-validator.d.ts.map +1 -0
- package/cjs/validators/union-validator.js +60 -0
- package/cjs/validators/union-validator.js.map +1 -0
- package/esm/index.d.ts +30 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +1 -0
- package/esm/index.js.map +1 -0
- 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 +22 -0
- package/esm/mutators/number-mutators.d.ts.map +1 -0
- package/esm/mutators/number-mutators.js +53 -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 +48 -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 +67 -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 +45 -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 +69 -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 +39 -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 +38 -0
- package/esm/rules/common/type-rules.d.ts.map +1 -0
- package/esm/rules/common/type-rules.js +117 -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 +17 -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 +118 -0
- package/esm/rules/conditional/forbidden-if-rules.js.map +1 -0
- package/esm/rules/conditional/index.d.ts +11 -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 +100 -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 +22 -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 +70 -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 +70 -0
- package/esm/rules/conditional/present-without-rules.js.map +1 -0
- package/esm/rules/conditional/required-if-rules.d.ts +77 -0
- package/esm/rules/conditional/required-if-rules.d.ts.map +1 -0
- package/esm/rules/conditional/required-if-rules.js +205 -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 +22 -0
- package/esm/rules/conditional/required-unless-rules.js.map +1 -0
- package/esm/rules/conditional/required-when-rule.d.ts +18 -0
- package/esm/rules/conditional/required-when-rule.d.ts.map +1 -0
- package/esm/rules/conditional/required-when-rule.js +26 -0
- package/esm/rules/conditional/required-when-rule.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 +64 -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 +64 -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 +14 -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 +80 -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 +68 -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 +94 -0
- package/esm/rules/date/date-field-comparison-rules.js.map +1 -0
- package/esm/rules/date/date-period-rules.d.ts +124 -0
- package/esm/rules/date/date-period-rules.d.ts.map +1 -0
- package/esm/rules/date/date-period-rules.js +605 -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 +60 -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 +71 -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 +288 -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 +60 -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 +30 -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 +107 -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 +245 -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 +117 -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 +117 -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 +15 -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 +14 -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 +56 -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/standard-schema/index.d.ts +4 -0
- package/esm/standard-schema/index.d.ts.map +1 -0
- package/esm/standard-schema/json-schema.d.ts +61 -0
- package/esm/standard-schema/json-schema.d.ts.map +1 -0
- package/esm/standard-schema/json-schema.js +85 -0
- package/esm/standard-schema/json-schema.js.map +1 -0
- package/esm/standard-schema/map-result.d.ts +18 -0
- package/esm/standard-schema/map-result.d.ts.map +1 -0
- package/esm/standard-schema/map-result.js +27 -0
- package/esm/standard-schema/map-result.js.map +1 -0
- package/esm/standard-schema/types.d.ts +93 -0
- package/esm/standard-schema/types.d.ts.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 +47 -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 +32 -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 +58 -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 +29 -0
- package/esm/validators/any-validator.d.ts.map +1 -0
- package/esm/validators/any-validator.js +31 -0
- package/esm/validators/any-validator.js.map +1 -0
- package/esm/validators/array-validator.d.ts +72 -0
- package/esm/validators/array-validator.d.ts.map +1 -0
- package/esm/validators/array-validator.js +162 -0
- package/esm/validators/array-validator.js.map +1 -0
- package/esm/validators/base-validator.d.ts +425 -0
- package/esm/validators/base-validator.d.ts.map +1 -0
- package/esm/validators/base-validator.js +637 -0
- package/esm/validators/base-validator.js.map +1 -0
- package/esm/validators/boolean-validator.d.ts +67 -0
- package/esm/validators/boolean-validator.d.ts.map +1 -0
- package/esm/validators/boolean-validator.js +105 -0
- package/esm/validators/boolean-validator.js.map +1 -0
- package/esm/validators/computed-validator.d.ts +75 -0
- package/esm/validators/computed-validator.d.ts.map +1 -0
- package/esm/validators/computed-validator.js +124 -0
- package/esm/validators/computed-validator.js.map +1 -0
- package/esm/validators/date-validator.d.ts +330 -0
- package/esm/validators/date-validator.d.ts.map +1 -0
- package/esm/validators/date-validator.js +614 -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 +31 -0
- package/esm/validators/index.d.ts.map +1 -0
- package/esm/validators/int-validator.d.ts +19 -0
- package/esm/validators/int-validator.d.ts.map +1 -0
- package/esm/validators/int-validator.js +21 -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/methods/equality-conditional-methods.d.ts +88 -0
- package/esm/validators/methods/equality-conditional-methods.d.ts.map +1 -0
- package/esm/validators/methods/equality-conditional-methods.js +118 -0
- package/esm/validators/methods/equality-conditional-methods.js.map +1 -0
- package/esm/validators/methods/forbidden-methods.d.ts +58 -0
- package/esm/validators/methods/forbidden-methods.d.ts.map +1 -0
- package/esm/validators/methods/forbidden-methods.js +122 -0
- package/esm/validators/methods/forbidden-methods.js.map +1 -0
- package/esm/validators/methods/present-methods.d.ts +102 -0
- package/esm/validators/methods/present-methods.d.ts.map +1 -0
- package/esm/validators/methods/present-methods.js +229 -0
- package/esm/validators/methods/present-methods.js.map +1 -0
- package/esm/validators/methods/required-methods.d.ts +174 -0
- package/esm/validators/methods/required-methods.d.ts.map +1 -0
- package/esm/validators/methods/required-methods.js +246 -0
- package/esm/validators/methods/required-methods.js.map +1 -0
- package/esm/validators/number-validator.d.ts +166 -0
- package/esm/validators/number-validator.d.ts.map +1 -0
- package/esm/validators/number-validator.js +307 -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 +233 -0
- package/esm/validators/object-validator.d.ts.map +1 -0
- package/esm/validators/object-validator.js +517 -0
- package/esm/validators/object-validator.js.map +1 -0
- package/esm/validators/primitive-validator.d.ts +70 -0
- package/esm/validators/primitive-validator.d.ts.map +1 -0
- package/esm/validators/primitive-validator.js +80 -0
- package/esm/validators/primitive-validator.js.map +1 -0
- package/esm/validators/record-validator.d.ts +54 -0
- package/esm/validators/record-validator.d.ts.map +1 -0
- package/esm/validators/record-validator.js +100 -0
- package/esm/validators/record-validator.js.map +1 -0
- package/esm/validators/scalar-validator.d.ts +93 -0
- package/esm/validators/scalar-validator.d.ts.map +1 -0
- package/esm/validators/scalar-validator.js +149 -0
- package/esm/validators/scalar-validator.js.map +1 -0
- package/esm/validators/string-validator.d.ts +189 -0
- package/esm/validators/string-validator.d.ts.map +1 -0
- package/esm/validators/string-validator.js +387 -0
- package/esm/validators/string-validator.js.map +1 -0
- package/esm/validators/tuple-validator.d.ts +56 -0
- package/esm/validators/tuple-validator.d.ts.map +1 -0
- package/esm/validators/tuple-validator.js +121 -0
- package/esm/validators/tuple-validator.js.map +1 -0
- package/esm/validators/union-validator.d.ts +55 -0
- package/esm/validators/union-validator.d.ts.map +1 -0
- package/esm/validators/union-validator.js +60 -0
- package/esm/validators/union-validator.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,637 @@
|
|
|
1
|
+
'use strict';var reinforcements=require('@mongez/reinforcements'),validate=require('../factory/validate.js'),validationHelpers=require('../helpers/validation-helpers.js'),isEmptyValue=require('../helpers/is-empty-value.js'),required=require('../rules/core/required.js'),mapResult=require('../standard-schema/map-result.js');/**
|
|
2
|
+
* Base validator class - foundation for all validators
|
|
3
|
+
*/
|
|
4
|
+
class BaseValidator {
|
|
5
|
+
rules = [];
|
|
6
|
+
mutators = [];
|
|
7
|
+
defaultValue;
|
|
8
|
+
description;
|
|
9
|
+
shouldOmit = false;
|
|
10
|
+
isNullable = false;
|
|
11
|
+
isMutable = false;
|
|
12
|
+
/**
|
|
13
|
+
* Whether the field is optional.
|
|
14
|
+
* - false (default): field is required unless a requiredRule governs the condition.
|
|
15
|
+
* - true: field can be absent or empty — set by calling .optional().
|
|
16
|
+
*
|
|
17
|
+
* Also used as a TypeScript literal brand via the optional() return type.
|
|
18
|
+
*/
|
|
19
|
+
isOptional = false;
|
|
20
|
+
/**
|
|
21
|
+
* The single required-condition rule for this field.
|
|
22
|
+
* - null: field uses strict default (always required when not optional).
|
|
23
|
+
* - set: the rule governs when the field is required (e.g., requiredIf).
|
|
24
|
+
*
|
|
25
|
+
* Stored separately from rules[] and prepended at validate() time.
|
|
26
|
+
*/
|
|
27
|
+
requiredRule = this.createRule(required.requiredRule);
|
|
28
|
+
/**
|
|
29
|
+
* Pipeline to transform the mutated/original data before returning it
|
|
30
|
+
*/
|
|
31
|
+
dataTransformers = [];
|
|
32
|
+
/**
|
|
33
|
+
* Attributes text to be replaced on translations
|
|
34
|
+
* If the value is an object, it will be used as the attributes list for the rule
|
|
35
|
+
* If the value is a string, it will be used as the attributes list for the rule
|
|
36
|
+
*/
|
|
37
|
+
attributesText = {};
|
|
38
|
+
/**
|
|
39
|
+
* Attributed that will be always using the attribute translator
|
|
40
|
+
*/
|
|
41
|
+
translatedAttributes = {};
|
|
42
|
+
/**
|
|
43
|
+
* Mark the validator as mutable
|
|
44
|
+
*/
|
|
45
|
+
get mutable() {
|
|
46
|
+
this.isMutable = true;
|
|
47
|
+
return this;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Mark the validator as immutable
|
|
51
|
+
*/
|
|
52
|
+
get immutable() {
|
|
53
|
+
this.isMutable = false;
|
|
54
|
+
return this;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Get the instance to apply changes to.
|
|
58
|
+
* By default (immutable), returns a clone so the original is unchanged.
|
|
59
|
+
* When `.mutable` is set, returns `this` to mutate in place.
|
|
60
|
+
*/
|
|
61
|
+
get instance() {
|
|
62
|
+
return this.isMutable ? this : this.clone();
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Get the default value
|
|
66
|
+
* Supports lazy evaluation via callbacks
|
|
67
|
+
*/
|
|
68
|
+
getDefaultValue() {
|
|
69
|
+
return typeof this.defaultValue === "function" ? this.defaultValue() : this.defaultValue;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Determine if value accepts null value
|
|
73
|
+
*/
|
|
74
|
+
nullable() {
|
|
75
|
+
const instance = this.instance;
|
|
76
|
+
instance.isNullable = true;
|
|
77
|
+
return instance;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Explicitly disallow null values after calling nullable
|
|
81
|
+
*/
|
|
82
|
+
notNullable() {
|
|
83
|
+
const instance = this.instance;
|
|
84
|
+
instance.isNullable = false;
|
|
85
|
+
return instance;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Add transformer with optional options
|
|
89
|
+
*
|
|
90
|
+
* @param transform - The transformer callback function
|
|
91
|
+
* @param options - Optional options to pass to the transformer
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```ts
|
|
95
|
+
* // Without options
|
|
96
|
+
* v.date().addTransformer(data => data.toISOString())
|
|
97
|
+
*
|
|
98
|
+
* // With options
|
|
99
|
+
* v.date().addTransformer(
|
|
100
|
+
* (data, { options }) => dayjs(data).format(options.format),
|
|
101
|
+
* { format: 'YYYY-MM-DD' }
|
|
102
|
+
* )
|
|
103
|
+
* ```
|
|
104
|
+
*/
|
|
105
|
+
addTransformer(transform, options = {}) {
|
|
106
|
+
const instance = this.instance;
|
|
107
|
+
instance.addMutableTransformer(transform, options);
|
|
108
|
+
return instance;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Add transformer with optional options
|
|
112
|
+
*
|
|
113
|
+
* @param transform - The transformer callback function
|
|
114
|
+
* @param options - Optional options to pass to the transformer
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* ```ts
|
|
118
|
+
* // Without options
|
|
119
|
+
* v.date().addTransformer(data => data.toISOString())
|
|
120
|
+
*
|
|
121
|
+
* // With options
|
|
122
|
+
* v.date().addTransformer(
|
|
123
|
+
* (data, { options }) => dayjs(data).format(options.format),
|
|
124
|
+
* { format: 'YYYY-MM-DD' }
|
|
125
|
+
* )
|
|
126
|
+
* ```
|
|
127
|
+
*/
|
|
128
|
+
addMutableTransformer(transform, options = {}) {
|
|
129
|
+
this.dataTransformers.push({
|
|
130
|
+
transform,
|
|
131
|
+
options,
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Transform the output value - simple one-time transformation
|
|
136
|
+
*
|
|
137
|
+
* @param callback - Simple callback receiving data and context
|
|
138
|
+
*
|
|
139
|
+
* @example
|
|
140
|
+
* ```ts
|
|
141
|
+
* // Simple transformation
|
|
142
|
+
* v.string().outputAs(data => data.toUpperCase())
|
|
143
|
+
*
|
|
144
|
+
* // With context
|
|
145
|
+
* v.string().outputAs((data, context) => {
|
|
146
|
+
* console.log(`Transforming ${context.path}`);
|
|
147
|
+
* return data.toLowerCase();
|
|
148
|
+
* })
|
|
149
|
+
* ```
|
|
150
|
+
*/
|
|
151
|
+
outputAs(callback) {
|
|
152
|
+
return this.addTransformer((data, { context }) => callback(data, context));
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Transform output to JSON string
|
|
156
|
+
*
|
|
157
|
+
* Works with any validator type (string, number, date, object, array, etc.)
|
|
158
|
+
*
|
|
159
|
+
* @param indent - Optional indentation for pretty printing (default: 0 for compact)
|
|
160
|
+
*
|
|
161
|
+
* @example
|
|
162
|
+
* ```ts
|
|
163
|
+
* // Compact JSON
|
|
164
|
+
* v.object({ name: v.string() }).toJSON()
|
|
165
|
+
* // Output: '{"name":"John"}'
|
|
166
|
+
*
|
|
167
|
+
* // Pretty-printed JSON
|
|
168
|
+
* v.array(v.object({...})).toJSON(2)
|
|
169
|
+
* // Output:
|
|
170
|
+
* // [
|
|
171
|
+
* // {
|
|
172
|
+
* // "name": "John"
|
|
173
|
+
* // }
|
|
174
|
+
* // ]
|
|
175
|
+
*
|
|
176
|
+
* // Works with any type
|
|
177
|
+
* v.string().toJSON() // '"hello"'
|
|
178
|
+
* v.number().toJSON() // '42'
|
|
179
|
+
* v.date().toJSON() // '"2024-10-26T00:00:00.000Z"'
|
|
180
|
+
* ```
|
|
181
|
+
*
|
|
182
|
+
* @category Transformer
|
|
183
|
+
*/
|
|
184
|
+
toJSON(indent) {
|
|
185
|
+
return this.addTransformer((data, { options }) => JSON.stringify(data, null, options.indent), {
|
|
186
|
+
indent: indent ?? 0,
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Start data transformation pipeline
|
|
191
|
+
* Context is passed at runtime, not stored
|
|
192
|
+
*/
|
|
193
|
+
async startTransformationPipeline(data, context) {
|
|
194
|
+
for (const transformer of this.dataTransformers) {
|
|
195
|
+
data = await transformer.transform(data, {
|
|
196
|
+
options: transformer.options,
|
|
197
|
+
context,
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
return data;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Set attributes text to be replaced on translations
|
|
204
|
+
* If the value is an object, it will be used as the attributes list for the rule
|
|
205
|
+
* If the value is a string, it will be used as the attributes list for the rule
|
|
206
|
+
*
|
|
207
|
+
* @example
|
|
208
|
+
* v.string().attributes({
|
|
209
|
+
* name: "Name",
|
|
210
|
+
* email: "Email",
|
|
211
|
+
* });
|
|
212
|
+
* // Example 2: Add custom attributes for matches
|
|
213
|
+
* v.string().matches("confirmPassword").attributes({
|
|
214
|
+
* matches: {
|
|
215
|
+
* confirmPassword: "Confirm Password",
|
|
216
|
+
* },
|
|
217
|
+
* });
|
|
218
|
+
*/
|
|
219
|
+
attributes(attributes) {
|
|
220
|
+
const instance = this.instance;
|
|
221
|
+
for (const key in attributes) {
|
|
222
|
+
instance.attributesText[key] = attributes[key];
|
|
223
|
+
}
|
|
224
|
+
return instance;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Define a lazy getter property for each attribute in the given object and use the config attribute translator
|
|
228
|
+
*/
|
|
229
|
+
transAttributes(attributes) {
|
|
230
|
+
const instance = this.instance;
|
|
231
|
+
for (const key in attributes) {
|
|
232
|
+
instance.translatedAttributes[key] = attributes[key];
|
|
233
|
+
}
|
|
234
|
+
return instance;
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Add description to the validator
|
|
238
|
+
*/
|
|
239
|
+
describe(description) {
|
|
240
|
+
const instance = this.instance;
|
|
241
|
+
instance.description = description;
|
|
242
|
+
return instance;
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Check if this validator can handle the given value's type
|
|
246
|
+
* Override this in specific validators to enable type-based routing in union validators
|
|
247
|
+
*
|
|
248
|
+
* Default: returns true (validator will attempt to validate any type)
|
|
249
|
+
*
|
|
250
|
+
* @param value - The value to check
|
|
251
|
+
* @returns True if this validator can handle this type
|
|
252
|
+
*
|
|
253
|
+
* @example
|
|
254
|
+
* ```ts
|
|
255
|
+
* // StringValidator
|
|
256
|
+
* public matchesType(value: any): boolean {
|
|
257
|
+
* return typeof value === 'string';
|
|
258
|
+
* }
|
|
259
|
+
*
|
|
260
|
+
* // Custom FileValidator
|
|
261
|
+
* public matchesType(value: any): boolean {
|
|
262
|
+
* return value instanceof UploadedFile;
|
|
263
|
+
* }
|
|
264
|
+
* ```
|
|
265
|
+
*/
|
|
266
|
+
matchesType(_value) {
|
|
267
|
+
return true; // Default: permissive, attempt to validate any type
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Create a copy of this validator with the same configuration
|
|
271
|
+
* Copies all rules, mutators, transformers, default values, and settings
|
|
272
|
+
*
|
|
273
|
+
* @returns A new validator instance with copied configuration
|
|
274
|
+
*
|
|
275
|
+
* @example
|
|
276
|
+
* ```ts
|
|
277
|
+
* // Create reusable validator templates
|
|
278
|
+
* const baseString = v.string().required().trim().min(3);
|
|
279
|
+
* const emailField = baseString.clone().email();
|
|
280
|
+
* const usernameField = baseString.clone().alphanumeric().max(20);
|
|
281
|
+
*
|
|
282
|
+
* // Works with all validators
|
|
283
|
+
* const positiveInt = v.int().positive().required();
|
|
284
|
+
* const ageField = positiveInt.clone().min(18).max(120);
|
|
285
|
+
* ```
|
|
286
|
+
*/
|
|
287
|
+
clone() {
|
|
288
|
+
// Create a new instance using Object.create to preserve the prototype chain
|
|
289
|
+
const Constructor = this.constructor;
|
|
290
|
+
const cloned = Object.create(Constructor.prototype);
|
|
291
|
+
// Copy all BaseValidator properties
|
|
292
|
+
cloned.rules = [...this.rules];
|
|
293
|
+
cloned.mutators = [...this.mutators];
|
|
294
|
+
cloned.dataTransformers = [...this.dataTransformers];
|
|
295
|
+
cloned.defaultValue = this.defaultValue;
|
|
296
|
+
cloned.shouldOmit = this.shouldOmit;
|
|
297
|
+
cloned.description = this.description;
|
|
298
|
+
cloned.attributesText = { ...this.attributesText };
|
|
299
|
+
cloned.isNullable = this.isNullable;
|
|
300
|
+
cloned.isOptional = this.isOptional;
|
|
301
|
+
cloned.requiredRule = this.requiredRule; // same reference is fine — rule is treated as immutable
|
|
302
|
+
return cloned;
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* @deprecated This method is no longer needed and does nothing.
|
|
306
|
+
* Empty values are now automatically skipped for validation rules by default.
|
|
307
|
+
* Only presence validators (required, present, etc.) will check empty values.
|
|
308
|
+
* You can safely remove this call from your code.
|
|
309
|
+
*/
|
|
310
|
+
ignoreEmptyValue(_ignoreEmptyValue = true) {
|
|
311
|
+
// No-op for backward compatibility
|
|
312
|
+
return this;
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Omit this field from the validated data output
|
|
316
|
+
*
|
|
317
|
+
* Field will still be validated but not included in the final result.
|
|
318
|
+
* Useful for confirmation fields, captcha, terms acceptance, etc.
|
|
319
|
+
*
|
|
320
|
+
* @example
|
|
321
|
+
* ```ts
|
|
322
|
+
* v.object({
|
|
323
|
+
* password: v.string().required(),
|
|
324
|
+
* confirmPassword: v.string().required().sameAs("password").omit(),
|
|
325
|
+
* acceptTerms: v.boolean().required().omit(),
|
|
326
|
+
* });
|
|
327
|
+
* // Output: { password: "..." }
|
|
328
|
+
* // confirmPassword and acceptTerms validated but omitted
|
|
329
|
+
* ```
|
|
330
|
+
*/
|
|
331
|
+
omit() {
|
|
332
|
+
const instance = this.instance;
|
|
333
|
+
instance.shouldOmit = true;
|
|
334
|
+
return instance;
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* @alias omit
|
|
338
|
+
*/
|
|
339
|
+
exclude() {
|
|
340
|
+
return this.omit();
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* Check if this field should be omitted from the output
|
|
344
|
+
*/
|
|
345
|
+
isOmitted() {
|
|
346
|
+
return this.shouldOmit;
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* Add rule to the validator
|
|
350
|
+
*/
|
|
351
|
+
addRule(rule, errorMessage, options = {}) {
|
|
352
|
+
const instance = this.instance;
|
|
353
|
+
instance.addMutableRule(rule, errorMessage, options);
|
|
354
|
+
return instance;
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Set the required-condition rule for this field.
|
|
358
|
+
*
|
|
359
|
+
* Unlike addRule(), this does NOT push to rules[]. The rule is stored in the
|
|
360
|
+
* dedicated `requiredRule` slot and is prepended to the validation pipeline
|
|
361
|
+
* at runtime. Only one required rule can be active per field — this replaces
|
|
362
|
+
* any previously set required rule.
|
|
363
|
+
*
|
|
364
|
+
* Also marks the field as not optional (isOptional = false).
|
|
365
|
+
*
|
|
366
|
+
* @example
|
|
367
|
+
* ```ts
|
|
368
|
+
* // Used internally by required(), requiredIf(), requiredWith(), etc.
|
|
369
|
+
* BaseValidator.prototype.required = function(msg) {
|
|
370
|
+
* return this.setRequiredRule(requiredRule, msg);
|
|
371
|
+
* };
|
|
372
|
+
* ```
|
|
373
|
+
*/
|
|
374
|
+
setRequiredRule(rule, errorMessage, options = {}) {
|
|
375
|
+
const instance = this.instance;
|
|
376
|
+
instance.isOptional = false;
|
|
377
|
+
instance.requiredRule = instance.createRule(rule, errorMessage, options);
|
|
378
|
+
return instance;
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* Add mutable rule
|
|
382
|
+
*/
|
|
383
|
+
addMutableRule(rule, errorMessage, options = {}) {
|
|
384
|
+
const newRule = this.createRule(rule, errorMessage, options);
|
|
385
|
+
this.rules.push(newRule);
|
|
386
|
+
return newRule;
|
|
387
|
+
}
|
|
388
|
+
/**
|
|
389
|
+
* Create new rule
|
|
390
|
+
*/
|
|
391
|
+
createRule(rule, errorMessage, options = {}) {
|
|
392
|
+
const newRule = {
|
|
393
|
+
...reinforcements.clone(rule),
|
|
394
|
+
context: {
|
|
395
|
+
errorMessage,
|
|
396
|
+
options,
|
|
397
|
+
attributesList: this.attributesText,
|
|
398
|
+
translatedAttributes: this.translatedAttributes,
|
|
399
|
+
translationParams: {},
|
|
400
|
+
translatableParams: {},
|
|
401
|
+
},
|
|
402
|
+
};
|
|
403
|
+
if (errorMessage) {
|
|
404
|
+
newRule.errorMessage = errorMessage;
|
|
405
|
+
}
|
|
406
|
+
if (rule.sortOrder === undefined) {
|
|
407
|
+
newRule.sortOrder = this.rules.length + 1;
|
|
408
|
+
}
|
|
409
|
+
return newRule;
|
|
410
|
+
}
|
|
411
|
+
/**
|
|
412
|
+
* Use a custom or pre-built validation rule
|
|
413
|
+
*
|
|
414
|
+
* @param rule - The validation rule to apply
|
|
415
|
+
* @param options - Rule options including errorMessage and any rule-specific options
|
|
416
|
+
*
|
|
417
|
+
* @example
|
|
418
|
+
* ```ts
|
|
419
|
+
* import { hexColorRule } from "@warlock.js/seal";
|
|
420
|
+
*
|
|
421
|
+
* v.string().useRule(hexColorRule, { errorMessage: "Invalid color" });
|
|
422
|
+
* ```
|
|
423
|
+
*
|
|
424
|
+
* @example
|
|
425
|
+
* ```ts
|
|
426
|
+
* // With rule options
|
|
427
|
+
* v.string().useRule(myCustomRule, {
|
|
428
|
+
* customOption: true,
|
|
429
|
+
* errorMessage: "Custom validation failed"
|
|
430
|
+
* });
|
|
431
|
+
* ```
|
|
432
|
+
*/
|
|
433
|
+
useRule(rule, options) {
|
|
434
|
+
const { errorMessage, ...ruleOptions } = options || {};
|
|
435
|
+
return this.addRule(rule, errorMessage, ruleOptions);
|
|
436
|
+
}
|
|
437
|
+
/**
|
|
438
|
+
* Define custom rule
|
|
439
|
+
*/
|
|
440
|
+
refine(callback) {
|
|
441
|
+
return this.addRule({
|
|
442
|
+
name: "custom",
|
|
443
|
+
async validate(value, context) {
|
|
444
|
+
const result = await callback(value, context);
|
|
445
|
+
if (result) {
|
|
446
|
+
this.context.errorMessage = result;
|
|
447
|
+
return validationHelpers.invalidRule(this, context);
|
|
448
|
+
}
|
|
449
|
+
return validationHelpers.VALID_RULE;
|
|
450
|
+
},
|
|
451
|
+
});
|
|
452
|
+
}
|
|
453
|
+
/**
|
|
454
|
+
* Add mutator to the validator
|
|
455
|
+
*/
|
|
456
|
+
addMutator(mutator, options = {}) {
|
|
457
|
+
const instance = this.instance;
|
|
458
|
+
instance.addMutableMutator(mutator, options);
|
|
459
|
+
return instance;
|
|
460
|
+
}
|
|
461
|
+
/**
|
|
462
|
+
* Add mutable mutator
|
|
463
|
+
*/
|
|
464
|
+
addMutableMutator(mutator, options = {}) {
|
|
465
|
+
this.mutators.push({
|
|
466
|
+
mutate: mutator,
|
|
467
|
+
context: {
|
|
468
|
+
options,
|
|
469
|
+
ctx: {},
|
|
470
|
+
},
|
|
471
|
+
});
|
|
472
|
+
}
|
|
473
|
+
/**
|
|
474
|
+
* Set default value for the field
|
|
475
|
+
*/
|
|
476
|
+
default(value) {
|
|
477
|
+
const instance = this.instance;
|
|
478
|
+
instance.defaultValue = value;
|
|
479
|
+
return instance;
|
|
480
|
+
}
|
|
481
|
+
/**
|
|
482
|
+
* Mutate the data
|
|
483
|
+
*/
|
|
484
|
+
async mutate(data, context) {
|
|
485
|
+
let mutatedData = data;
|
|
486
|
+
for (const mutator of this.mutators) {
|
|
487
|
+
mutator.context.ctx = context;
|
|
488
|
+
mutatedData = await mutator.mutate(mutatedData, mutator.context);
|
|
489
|
+
}
|
|
490
|
+
return mutatedData;
|
|
491
|
+
}
|
|
492
|
+
/**
|
|
493
|
+
* Set the label for the validator that will be matching the :input attribute
|
|
494
|
+
*/
|
|
495
|
+
label(label) {
|
|
496
|
+
const instance = this.instance;
|
|
497
|
+
instance.attributesText.input = label;
|
|
498
|
+
return instance;
|
|
499
|
+
}
|
|
500
|
+
/**
|
|
501
|
+
* Validate the data
|
|
502
|
+
*/
|
|
503
|
+
async validate(data, context) {
|
|
504
|
+
if (data === null && this.isNullable) {
|
|
505
|
+
return { isValid: true, errors: [], data: null };
|
|
506
|
+
}
|
|
507
|
+
const valueForRules = data ?? this.getDefaultValue();
|
|
508
|
+
const mutatedData = await this.mutate(valueForRules, context);
|
|
509
|
+
const errors = [];
|
|
510
|
+
let isValid = true;
|
|
511
|
+
const isFirstErrorOnly = context.configurations?.firstErrorOnly ?? true;
|
|
512
|
+
const isEmpty = isEmptyValue.isEmptyValue(valueForRules);
|
|
513
|
+
// Prepend the required-condition rule if set, so it always runs first.
|
|
514
|
+
// requiredRule has requiresValue = false so it runs even on empty values.
|
|
515
|
+
const rulesToRun = this.requiredRule ? [this.requiredRule, ...this.rules] : this.rules;
|
|
516
|
+
for (const rule of rulesToRun) {
|
|
517
|
+
if ((rule.requiresValue ?? true) && isEmpty)
|
|
518
|
+
continue;
|
|
519
|
+
this.setRuleAttributesList(rule);
|
|
520
|
+
const result = await rule.validate(mutatedData, context);
|
|
521
|
+
if (result.isValid === false) {
|
|
522
|
+
isValid = false;
|
|
523
|
+
errors.push({
|
|
524
|
+
type: rule.name,
|
|
525
|
+
error: result.error,
|
|
526
|
+
input: result.path ?? context.path,
|
|
527
|
+
});
|
|
528
|
+
if (isFirstErrorOnly) {
|
|
529
|
+
break;
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
return {
|
|
534
|
+
isValid,
|
|
535
|
+
errors,
|
|
536
|
+
data: mutatedData !== undefined
|
|
537
|
+
? await this.startTransformationPipeline(mutatedData, context)
|
|
538
|
+
: undefined,
|
|
539
|
+
};
|
|
540
|
+
}
|
|
541
|
+
/**
|
|
542
|
+
* Set rule attributes list
|
|
543
|
+
*/
|
|
544
|
+
setRuleAttributesList(rule) {
|
|
545
|
+
rule.context.attributesList =
|
|
546
|
+
typeof this.attributesText[rule.name] === "object"
|
|
547
|
+
? this.attributesText[rule.name]
|
|
548
|
+
: this.attributesText;
|
|
549
|
+
}
|
|
550
|
+
/**
|
|
551
|
+
* Standard Schema V1 compliance.
|
|
552
|
+
*
|
|
553
|
+
* Allows this validator to be used with any Standard Schema-aware library
|
|
554
|
+
* (OpenAI structured outputs, LangGraph, TanStack Form, Conform, Valibot adapters, etc.)
|
|
555
|
+
* without extra adapters.
|
|
556
|
+
*
|
|
557
|
+
* Delegates to the `validate()` factory so all `configureSeal()` options
|
|
558
|
+
* (translations, firstErrorOnly) are picked up automatically at call time.
|
|
559
|
+
*
|
|
560
|
+
* Includes Standard JSON Schema support via `jsonSchema.input()` / `jsonSchema.output()`.
|
|
561
|
+
*
|
|
562
|
+
* ## How Standard Schema libraries consume this
|
|
563
|
+
*
|
|
564
|
+
* You pass the **schema object itself** to the library — they internally read
|
|
565
|
+
* `schema["~standard"]`. Do NOT pass `schema["~standard"]` directly.
|
|
566
|
+
*
|
|
567
|
+
* @example
|
|
568
|
+
* ```ts
|
|
569
|
+
* const schema = v.object({ name: v.string().required() });
|
|
570
|
+
*
|
|
571
|
+
* // TanStack Form — pass schema, library reads ["~standard"] internally
|
|
572
|
+
* const form = useForm({ validators: { onChange: schema } });
|
|
573
|
+
*
|
|
574
|
+
* // Conform (Remix) — same pattern
|
|
575
|
+
* const [form] = useForm({ onValidate({ formData }) {
|
|
576
|
+
* return parseWithStandardSchema(formData, { schema });
|
|
577
|
+
* }});
|
|
578
|
+
*
|
|
579
|
+
* // Direct validation (lower level — most apps don't need this)
|
|
580
|
+
* const result = await schema["~standard"].validate({ name: "Hasan" });
|
|
581
|
+
* // → { value: { name: "Hasan" } } on success
|
|
582
|
+
* // → { issues: [{ message: "...", path: [{ key: "name" }] }] } on failure
|
|
583
|
+
*
|
|
584
|
+
* // JSON Schema for OpenAI / LangChain tool calling
|
|
585
|
+
* const parameters = schema["~standard"].jsonSchema.input({ target: "openai-strict" });
|
|
586
|
+
* // → { type: "object", properties: {...}, required: [...], additionalProperties: false }
|
|
587
|
+
* ```
|
|
588
|
+
*
|
|
589
|
+
* @note Cross-field rules (sameAs, requiredIf, requiredWith) rely on sibling values
|
|
590
|
+
* available in the full validation context. When called on a standalone scalar validator,
|
|
591
|
+
* sibling data is absent and those rules will not evaluate correctly.
|
|
592
|
+
* Always call on the parent ObjectValidator for full-payload validation.
|
|
593
|
+
*/
|
|
594
|
+
get ["~standard"]() {
|
|
595
|
+
return {
|
|
596
|
+
version: 1,
|
|
597
|
+
vendor: "seal",
|
|
598
|
+
types: undefined,
|
|
599
|
+
validate: async (value) => {
|
|
600
|
+
const result = await validate.validate(this, value);
|
|
601
|
+
return mapResult.mapToStandardResult(result);
|
|
602
|
+
},
|
|
603
|
+
jsonSchema: {
|
|
604
|
+
input: (options) => this.toJsonSchema(options.target),
|
|
605
|
+
output: (options) => this.toJsonSchema(options.target),
|
|
606
|
+
},
|
|
607
|
+
};
|
|
608
|
+
}
|
|
609
|
+
/**
|
|
610
|
+
* Generate a JSON Schema representation of this validator.
|
|
611
|
+
*
|
|
612
|
+
* Supports targets: `"draft-2020-12"` (default), `"draft-07"`, `"openapi-3.0"`.
|
|
613
|
+
*
|
|
614
|
+
* Subclasses override this to describe their specific constraints.
|
|
615
|
+
* The base implementation returns `{}` (permissive — accepts anything),
|
|
616
|
+
* which is correct for validators with no representable JSON Schema constraints.
|
|
617
|
+
*
|
|
618
|
+
* @note Rules that cannot be expressed in JSON Schema are silently omitted:
|
|
619
|
+
* - Cross-field rules: sameAs, requiredIf, requiredWith, requiredWithout
|
|
620
|
+
* - Custom callbacks: refine()
|
|
621
|
+
* - Framework-specific runtime rules (core/cascade plugins)
|
|
622
|
+
* These rules still run normally at validation time — only absent from JSON Schema.
|
|
623
|
+
*
|
|
624
|
+
* @example
|
|
625
|
+
* ```ts
|
|
626
|
+
* v.string().min(3).max(50).toJsonSchema("draft-2020-12")
|
|
627
|
+
* // → { type: "string", minLength: 3, maxLength: 50 }
|
|
628
|
+
*
|
|
629
|
+
* v.object({ name: v.string().required(), age: v.int().optional() })
|
|
630
|
+
* .toJsonSchema("draft-07")
|
|
631
|
+
* // → { type: "object", properties: { name: { type: "string" }, age: { type: "integer" } }, required: ["name"] }
|
|
632
|
+
* ```
|
|
633
|
+
*/
|
|
634
|
+
toJsonSchema(_target = "draft-2020-12") {
|
|
635
|
+
return {};
|
|
636
|
+
}
|
|
637
|
+
}exports.BaseValidator=BaseValidator;//# sourceMappingURL=base-validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-validator.js","sources":["../../src/validators/base-validator.ts"],"sourcesContent":[null],"names":["defaultRequiredRule","clone","invalidRule","VALID_RULE","isEmptyValue","validate","mapToStandardResult"],"mappings":"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"}
|