@warlock.js/seal 5.30.0 → 5.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +46 -7
- package/README.md +57 -9
- package/cjs/index.cjs +41 -29
- package/cjs/index.cjs.map +1 -1
- package/cjs/{object--LXRt5RF.cjs → object-BoVGJ68E.cjs} +43 -24
- package/cjs/object-BoVGJ68E.cjs.map +1 -0
- package/cjs/object.cjs +2 -2
- package/cjs/{required-methods-DYsRO9aZ.cjs → required-methods-BJlnLnwa.cjs} +343 -258
- package/cjs/required-methods-BJlnLnwa.cjs.map +1 -0
- package/cjs/{string-DsqnKoSB.cjs → string-CM8x0u2w.cjs} +46 -44
- package/cjs/string-CM8x0u2w.cjs.map +1 -0
- package/cjs/string.cjs +2 -2
- package/esm/config.d.mts +7 -8
- package/esm/config.d.mts.map +1 -1
- package/esm/config.mjs.map +1 -1
- package/esm/factory/index.d.mts +2 -1
- package/esm/factory/index.mjs +1 -1
- package/esm/factory/validate.d.mts +3 -6
- package/esm/factory/validate.d.mts.map +1 -1
- package/esm/factory/validators.d.mts +16 -13
- package/esm/factory/validators.d.mts.map +1 -1
- package/esm/factory/validators.mjs +7 -1
- package/esm/factory/validators.mjs.map +1 -1
- package/esm/helpers/date-helpers.d.mts +1 -2
- package/esm/helpers/date-helpers.d.mts.map +1 -1
- package/esm/helpers/file.utils.d.mts +2 -4
- package/esm/helpers/file.utils.d.mts.map +1 -1
- package/esm/helpers/get-field-value.d.mts +2 -3
- package/esm/helpers/get-field-value.d.mts.map +1 -1
- package/esm/helpers/get-field-value.mjs +2 -1
- package/esm/helpers/get-field-value.mjs.map +1 -1
- package/esm/helpers/index.d.mts +6 -0
- package/esm/helpers/index.mjs +1 -1
- package/esm/helpers/path-helpers.d.mts +1 -2
- package/esm/helpers/path-helpers.d.mts.map +1 -1
- package/esm/helpers/validation-helpers.d.mts +4 -10
- package/esm/helpers/validation-helpers.d.mts.map +1 -1
- package/esm/index.d.mts +7 -0
- package/esm/mutators/array-mutators.d.mts +6 -7
- package/esm/mutators/array-mutators.d.mts.map +1 -1
- package/esm/mutators/boolean-mutators.d.mts +3 -4
- package/esm/mutators/boolean-mutators.d.mts.map +1 -1
- package/esm/mutators/date-mutators.d.mts +18 -19
- package/esm/mutators/date-mutators.d.mts.map +1 -1
- package/esm/mutators/index.d.mts +8 -0
- package/esm/mutators/index.mjs +1 -1
- package/esm/mutators/number-mutators.d.mts +10 -11
- package/esm/mutators/number-mutators.d.mts.map +1 -1
- package/esm/mutators/object-mutators.d.mts +4 -5
- package/esm/mutators/object-mutators.d.mts.map +1 -1
- package/esm/mutators/object-mutators.mjs +5 -4
- package/esm/mutators/object-mutators.mjs.map +1 -1
- package/esm/mutators/scalar-mutators.d.mts +2 -3
- package/esm/mutators/scalar-mutators.d.mts.map +1 -1
- package/esm/mutators/string-mutators.d.mts +37 -38
- package/esm/mutators/string-mutators.d.mts.map +1 -1
- package/esm/mutators/string-mutators.mjs +5 -3
- package/esm/mutators/string-mutators.mjs.map +1 -1
- package/esm/object.d.mts +3 -5
- package/esm/object.d.mts.map +1 -1
- package/esm/object.mjs.map +1 -1
- package/esm/plugins/plugin-system.d.mts +11 -9
- package/esm/plugins/plugin-system.d.mts.map +1 -1
- package/esm/rules/array/array-rules.d.mts +3 -4
- package/esm/rules/array/array-rules.d.mts.map +1 -1
- package/esm/rules/array/index.d.mts +2 -0
- package/esm/rules/array/index.mjs +1 -1
- package/esm/rules/color/color-rules.d.mts +8 -9
- package/esm/rules/color/color-rules.d.mts.map +1 -1
- package/esm/rules/color/index.d.mts +2 -0
- package/esm/rules/color/index.mjs +1 -1
- package/esm/rules/common/enum.d.mts +5 -6
- package/esm/rules/common/enum.d.mts.map +1 -1
- package/esm/rules/common/equals-field-rules.d.mts +3 -4
- package/esm/rules/common/equals-field-rules.d.mts.map +1 -1
- package/esm/rules/common/index.d.mts +7 -0
- package/esm/rules/common/index.mjs +1 -1
- package/esm/rules/common/instanceof.d.mts +2 -3
- package/esm/rules/common/instanceof.d.mts.map +1 -1
- package/esm/rules/common/literal.d.mts +2 -3
- package/esm/rules/common/literal.d.mts.map +1 -1
- package/esm/rules/common/literal.mjs.map +1 -1
- package/esm/rules/common/type-rules.d.mts +10 -11
- package/esm/rules/common/type-rules.d.mts.map +1 -1
- package/esm/rules/common/unknown-key.d.mts +2 -3
- package/esm/rules/common/unknown-key.d.mts.map +1 -1
- package/esm/rules/conditional/forbidden-if-rules.d.mts +7 -8
- package/esm/rules/conditional/forbidden-if-rules.d.mts.map +1 -1
- package/esm/rules/conditional/index.d.mts +11 -0
- package/esm/rules/conditional/index.mjs +1 -1
- package/esm/rules/conditional/present-if-rules.d.mts +6 -7
- package/esm/rules/conditional/present-if-rules.d.mts.map +1 -1
- package/esm/rules/conditional/present-unless-rules.d.mts +2 -3
- package/esm/rules/conditional/present-unless-rules.d.mts.map +1 -1
- package/esm/rules/conditional/present-with-rules.d.mts +4 -5
- package/esm/rules/conditional/present-with-rules.d.mts.map +1 -1
- package/esm/rules/conditional/present-without-rules.d.mts +4 -5
- package/esm/rules/conditional/present-without-rules.d.mts.map +1 -1
- package/esm/rules/conditional/required-if-rules.d.mts +10 -11
- package/esm/rules/conditional/required-if-rules.d.mts.map +1 -1
- package/esm/rules/conditional/required-unless-rules.d.mts +2 -3
- package/esm/rules/conditional/required-unless-rules.d.mts.map +1 -1
- package/esm/rules/conditional/required-when-rule.d.mts +2 -3
- package/esm/rules/conditional/required-when-rule.d.mts.map +1 -1
- package/esm/rules/conditional/required-with-rules.d.mts +4 -5
- package/esm/rules/conditional/required-with-rules.d.mts.map +1 -1
- package/esm/rules/conditional/required-without-rules.d.mts +4 -5
- package/esm/rules/conditional/required-without-rules.d.mts.map +1 -1
- package/esm/rules/core/equal.d.mts +2 -3
- package/esm/rules/core/equal.d.mts.map +1 -1
- package/esm/rules/core/forbidden.d.mts +2 -3
- package/esm/rules/core/forbidden.d.mts.map +1 -1
- package/esm/rules/core/index.d.mts +6 -0
- package/esm/rules/core/index.mjs +1 -1
- package/esm/rules/core/required.d.mts +3 -4
- package/esm/rules/core/required.d.mts.map +1 -1
- package/esm/rules/core/union.d.mts +10 -4
- package/esm/rules/core/union.d.mts.map +1 -1
- package/esm/rules/core/union.mjs +56 -10
- package/esm/rules/core/union.mjs.map +1 -1
- package/esm/rules/core/when.d.mts +2 -3
- package/esm/rules/core/when.d.mts.map +1 -1
- package/esm/rules/core/when.mjs.map +1 -1
- package/esm/rules/date/date-comparison-rules.d.mts +6 -7
- package/esm/rules/date/date-comparison-rules.d.mts.map +1 -1
- package/esm/rules/date/date-day-rules.d.mts +5 -6
- package/esm/rules/date/date-day-rules.d.mts.map +1 -1
- package/esm/rules/date/date-field-comparison-rules.d.mts +4 -5
- package/esm/rules/date/date-field-comparison-rules.d.mts.map +1 -1
- package/esm/rules/date/date-field-comparison-rules.mjs +6 -3
- package/esm/rules/date/date-field-comparison-rules.mjs.map +1 -1
- package/esm/rules/date/date-period-rules.d.mts +16 -16
- package/esm/rules/date/date-period-rules.d.mts.map +1 -1
- package/esm/rules/date/date-period-rules.mjs +24 -12
- package/esm/rules/date/date-period-rules.mjs.map +1 -1
- package/esm/rules/date/date-relative-rules.d.mts +4 -5
- package/esm/rules/date/date-relative-rules.d.mts.map +1 -1
- package/esm/rules/date/date-relative-rules.mjs +3 -3
- package/esm/rules/date/date-relative-rules.mjs.map +1 -1
- package/esm/rules/date/date-special-rules.d.mts +4 -5
- package/esm/rules/date/date-special-rules.d.mts.map +1 -1
- package/esm/rules/date/date.d.mts +16 -17
- package/esm/rules/date/date.d.mts.map +1 -1
- package/esm/rules/date/date.mjs +4 -2
- package/esm/rules/date/date.mjs.map +1 -1
- package/esm/rules/date/index.d.mts +8 -0
- package/esm/rules/date/index.mjs +1 -1
- package/esm/rules/file/dimensions.d.mts +5 -6
- package/esm/rules/file/dimensions.d.mts.map +1 -1
- package/esm/rules/file/file-size.d.mts +3 -4
- package/esm/rules/file/file-size.d.mts.map +1 -1
- package/esm/rules/file/index.d.mts +3 -0
- package/esm/rules/file/index.mjs +1 -1
- package/esm/rules/index.d.mts +56 -0
- package/esm/rules/index.mjs +1 -1
- package/esm/rules/length/index.d.mts +2 -0
- package/esm/rules/length/index.mjs +1 -1
- package/esm/rules/length/length-rules.d.mts +8 -9
- package/esm/rules/length/length-rules.d.mts.map +1 -1
- package/esm/rules/number/index.d.mts +2 -0
- package/esm/rules/number/index.mjs +1 -1
- package/esm/rules/number/number-rules.d.mts +11 -12
- package/esm/rules/number/number-rules.d.mts.map +1 -1
- package/esm/rules/number/number-rules.mjs +12 -6
- package/esm/rules/number/number-rules.mjs.map +1 -1
- package/esm/rules/scalar/index.mjs +1 -1
- package/esm/rules/string/alpha.d.mts +4 -5
- package/esm/rules/string/alpha.d.mts.map +1 -1
- package/esm/rules/string/credit-card.d.mts +2 -3
- package/esm/rules/string/credit-card.d.mts.map +1 -1
- package/esm/rules/string/email.d.mts +2 -3
- package/esm/rules/string/email.d.mts.map +1 -1
- package/esm/rules/string/id-formats.d.mts +6 -7
- package/esm/rules/string/id-formats.d.mts.map +1 -1
- package/esm/rules/string/index.d.mts +12 -0
- package/esm/rules/string/index.mjs +1 -1
- package/esm/rules/string/ip.d.mts +7 -8
- package/esm/rules/string/ip.d.mts.map +1 -1
- package/esm/rules/string/matches.d.mts +2 -3
- package/esm/rules/string/matches.d.mts.map +1 -1
- package/esm/rules/string/pattern.d.mts +2 -3
- package/esm/rules/string/pattern.d.mts.map +1 -1
- package/esm/rules/string/string-comparison.d.mts +5 -6
- package/esm/rules/string/string-comparison.d.mts.map +1 -1
- package/esm/rules/string/strong-password-rule.d.mts +2 -3
- package/esm/rules/string/strong-password-rule.d.mts.map +1 -1
- package/esm/rules/string/url.d.mts +2 -3
- package/esm/rules/string/url.d.mts.map +1 -1
- package/esm/rules/string/without-whitespace.d.mts +2 -3
- package/esm/rules/string/without-whitespace.d.mts.map +1 -1
- package/esm/standard-schema/index.d.mts +4 -0
- package/esm/standard-schema/json-schema.d.mts +5 -7
- package/esm/standard-schema/json-schema.d.mts.map +1 -1
- package/esm/standard-schema/json-schema.mjs.map +1 -1
- package/esm/standard-schema/map-result.d.mts +2 -3
- package/esm/standard-schema/map-result.d.mts.map +1 -1
- package/esm/standard-schema/map-result.mjs.map +1 -1
- package/esm/standard-schema/types.d.mts +4 -5
- package/esm/standard-schema/types.d.mts.map +1 -1
- package/esm/string.d.mts +2 -3
- package/esm/string.d.mts.map +1 -1
- package/esm/types/conditional-types.d.mts +8 -6
- package/esm/types/conditional-types.d.mts.map +1 -1
- package/esm/types/context-types.d.mts +24 -15
- package/esm/types/context-types.d.mts.map +1 -1
- package/esm/types/data-transformer-types.d.mts +3 -5
- package/esm/types/data-transformer-types.d.mts.map +1 -1
- package/esm/types/date-types.d.mts +2 -3
- package/esm/types/date-types.d.mts.map +1 -1
- package/esm/types/file.types.d.mts +1 -2
- package/esm/types/file.types.d.mts.map +1 -1
- package/esm/types/index.d.mts +11 -0
- package/esm/types/inference-types.d.mts +15 -14
- package/esm/types/inference-types.d.mts.map +1 -1
- package/esm/types/mutator-types.d.mts +9 -7
- package/esm/types/mutator-types.d.mts.map +1 -1
- package/esm/types/result-types.d.mts +12 -7
- package/esm/types/result-types.d.mts.map +1 -1
- package/esm/types/rule-types.d.mts +33 -15
- package/esm/types/rule-types.d.mts.map +1 -1
- package/esm/types/schema-types.d.mts +1 -3
- package/esm/types/schema-types.d.mts.map +1 -1
- package/esm/validators/any-validator.d.mts +1 -3
- package/esm/validators/any-validator.d.mts.map +1 -1
- package/esm/validators/array-validator.d.mts +2 -3
- package/esm/validators/array-validator.d.mts.map +1 -1
- package/esm/validators/array-validator.mjs +3 -3
- package/esm/validators/array-validator.mjs.map +1 -1
- package/esm/validators/base-validator.d.mts +10 -11
- package/esm/validators/base-validator.d.mts.map +1 -1
- package/esm/validators/base-validator.mjs +52 -21
- package/esm/validators/base-validator.mjs.map +1 -1
- package/esm/validators/boolean-validator.d.mts +1 -3
- package/esm/validators/boolean-validator.d.mts.map +1 -1
- package/esm/validators/computed-validator.d.mts +3 -4
- package/esm/validators/computed-validator.d.mts.map +1 -1
- package/esm/validators/computed-validator.mjs +4 -4
- package/esm/validators/computed-validator.mjs.map +1 -1
- package/esm/validators/date-validator.d.mts +2 -3
- package/esm/validators/date-validator.d.mts.map +1 -1
- package/esm/validators/discriminated-union-validator.d.mts +3 -3
- package/esm/validators/discriminated-union-validator.d.mts.map +1 -1
- package/esm/validators/discriminated-union-validator.mjs +1 -1
- package/esm/validators/discriminated-union-validator.mjs.map +1 -1
- package/esm/validators/float-validator.d.mts +1 -3
- package/esm/validators/float-validator.d.mts.map +1 -1
- package/esm/validators/index.d.mts +2 -1
- package/esm/validators/index.mjs +1 -1
- package/esm/validators/instanceof-validator.d.mts +1 -3
- package/esm/validators/instanceof-validator.d.mts.map +1 -1
- package/esm/validators/int-validator.d.mts +1 -3
- package/esm/validators/int-validator.d.mts.map +1 -1
- package/esm/validators/lazy-validator.d.mts +2 -3
- package/esm/validators/lazy-validator.d.mts.map +1 -1
- package/esm/validators/lazy-validator.mjs +1 -1
- package/esm/validators/lazy-validator.mjs.map +1 -1
- package/esm/validators/literal-validator.d.mts +1 -3
- package/esm/validators/literal-validator.d.mts.map +1 -1
- package/esm/validators/managed-validator.d.mts +3 -4
- package/esm/validators/managed-validator.d.mts.map +1 -1
- package/esm/validators/methods/equality-conditional-methods.d.mts +3 -4
- package/esm/validators/methods/equality-conditional-methods.d.mts.map +1 -1
- package/esm/validators/methods/forbidden-methods.d.mts +2 -3
- package/esm/validators/methods/forbidden-methods.d.mts.map +1 -1
- package/esm/validators/methods/present-methods.d.mts +2 -3
- package/esm/validators/methods/present-methods.d.mts.map +1 -1
- package/esm/validators/methods/required-methods.d.mts +3 -4
- package/esm/validators/methods/required-methods.d.mts.map +1 -1
- package/esm/validators/number-validator.d.mts +1 -3
- package/esm/validators/number-validator.d.mts.map +1 -1
- package/esm/validators/number-validator.mjs +12 -8
- package/esm/validators/number-validator.mjs.map +1 -1
- package/esm/validators/numeric-validator.d.mts +1 -3
- package/esm/validators/numeric-validator.d.mts.map +1 -1
- package/esm/validators/object-validator.d.mts +2 -3
- package/esm/validators/object-validator.d.mts.map +1 -1
- package/esm/validators/object-validator.mjs +9 -7
- package/esm/validators/object-validator.mjs.map +1 -1
- package/esm/validators/primitive-validator.d.mts +1 -3
- package/esm/validators/primitive-validator.d.mts.map +1 -1
- package/esm/validators/record-validator.d.mts +2 -3
- package/esm/validators/record-validator.d.mts.map +1 -1
- package/esm/validators/record-validator.mjs +3 -3
- package/esm/validators/record-validator.mjs.map +1 -1
- package/esm/validators/scalar-validator.d.mts +1 -3
- package/esm/validators/scalar-validator.d.mts.map +1 -1
- package/esm/validators/scalar-validator.mjs.map +1 -1
- package/esm/validators/string-validator.d.mts +1 -3
- package/esm/validators/string-validator.d.mts.map +1 -1
- package/esm/validators/tuple-validator.d.mts +2 -3
- package/esm/validators/tuple-validator.d.mts.map +1 -1
- package/esm/validators/tuple-validator.mjs +3 -3
- package/esm/validators/tuple-validator.mjs.map +1 -1
- package/esm/validators/union-validator.d.mts +4 -4
- package/esm/validators/union-validator.d.mts.map +1 -1
- package/esm/validators/union-validator.mjs +3 -1
- package/esm/validators/union-validator.mjs.map +1 -1
- package/llms-full.txt +656 -527
- package/llms.txt +1 -1
- package/package.json +1 -1
- package/skills/bridge-standard-schema/SKILL.md +60 -36
- package/skills/compose-seal-modifiers/SKILL.md +89 -53
- package/skills/define-structural-shape/SKILL.md +41 -27
- package/skills/define-structural-shape/array-methods.md +27 -27
- package/skills/define-structural-shape/object-methods.md +38 -30
- package/skills/extend-seal-with-plugins/SKILL.md +39 -5
- package/skills/generate-json-schema/SKILL.md +13 -13
- package/skills/handle-seal-errors/SKILL.md +23 -23
- package/skills/index.md +4 -1
- package/skills/overview/SKILL.md +10 -2
- package/skills/pick-seal-primitive/SKILL.md +45 -45
- package/skills/pick-seal-primitive/date-methods.md +96 -96
- package/skills/pick-seal-primitive/number-methods.md +55 -55
- package/skills/pick-seal-primitive/string-methods.md +107 -102
- package/skills/seal-basics/SKILL.md +14 -14
- package/cjs/object--LXRt5RF.cjs.map +0 -1
- package/cjs/required-methods-DYsRO9aZ.cjs.map +0 -1
- package/cjs/string-DsqnKoSB.cjs.map +0 -1
|
@@ -40,7 +40,13 @@ const v = {
|
|
|
40
40
|
array: (validator, errorMessage) => new ArrayValidator(validator, errorMessage),
|
|
41
41
|
/** Create a record validator - object with dynamic keys and consistent value types */
|
|
42
42
|
record: (validator, errorMessage) => new RecordValidator(validator || v.any(), errorMessage),
|
|
43
|
-
/**
|
|
43
|
+
/**
|
|
44
|
+
* Create a tuple validator - fixed-length array with position-specific types.
|
|
45
|
+
*
|
|
46
|
+
* The `| []` in the constraint makes TypeScript infer a literal list as a tuple, so
|
|
47
|
+
* `v.tuple([v.string(), v.int()])` is typed `[string, number]` rather than
|
|
48
|
+
* `(string | number)[]`; a `BaseValidator[]` variable is still accepted.
|
|
49
|
+
*/
|
|
44
50
|
tuple: (validators, errorMessage) => new TupleValidator(validators, errorMessage),
|
|
45
51
|
/** Create a date validator */
|
|
46
52
|
date: (errorMessage) => new DateValidator(errorMessage),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validators.mjs","names":["validateFunction"],"sources":["../../../../../../../../packages/seal/src/factory/validators.ts"],"sourcesContent":["import type { SealConfig } from \"../config\";\nimport { object } from \"../object\";\nimport { string } from \"../string\";\nimport type { StandardSchemaV1 } from \"../standard-schema/types\";\nimport type { Schema, SchemaContext, TypedValidationResult, ValidatedOutput } from \"../types\";\nimport type { Infer } from \"../types/inference-types\";\nimport { AnyValidator } from \"../validators/any-validator\";\nimport { ArrayValidator } from \"../validators/array-validator\";\nimport type { BaseValidator } from \"../validators/base-validator\";\nimport { BooleanValidator } from \"../validators/boolean-validator\";\nimport { ComputedValidator } from \"../validators/computed-validator\";\nimport { DateValidator } from \"../validators/date-validator\";\nimport { DiscriminatedUnionValidator } from \"../validators/discriminated-union-validator\";\nimport { FloatValidator } from \"../validators/float-validator\";\nimport { InstanceOfValidator } from \"../validators/instanceof-validator\";\nimport { IntValidator } from \"../validators/int-validator\";\nimport { LazyValidator } from \"../validators/lazy-validator\";\nimport { LiteralValidator } from \"../validators/literal-validator\";\nimport { ManagedValidator } from \"../validators/managed-validator\";\nimport { NumberValidator } from \"../validators/number-validator\";\nimport { NumericValidator } from \"../validators/numeric-validator\";\nimport { ObjectValidator } from \"../validators/object-validator\";\nimport { RecordValidator } from \"../validators/record-validator\";\nimport { ScalarValidator } from \"../validators/scalar-validator\";\nimport { StringValidator } from \"../validators/string-validator\";\nimport { TupleValidator } from \"../validators/tuple-validator\";\nimport { UnionValidator } from \"../validators/union-validator\";\n// BaseValidator prototype augmentations — side-effect imports so the `v`\n// factory always exposes the chain methods (.required, .requiredIf, .sameAs,\n// .present, .forbidden, .when, …) regardless of which entry path loaded it.\n// The package barrel (src/index.ts) loads these via the validators barrel, but\n// importing the factory leaf directly would otherwise yield a half-built `v`.\nimport \"../validators/methods/equality-conditional-methods\";\nimport \"../validators/methods/forbidden-methods\";\nimport \"../validators/methods/present-methods\";\nimport \"../validators/methods/required-methods\";\nimport { validate as validateFunction } from \"./validate\";\n\n/**\n * Seal factory object - creates instances of validators\n *\n * Use 'v' to create validation schemas (seals) for your data\n */\nexport const v: ValidatorV = {\n /** Create an object validator */\n object,\n\n /** Create an any validator */\n any: () => new AnyValidator() as AnyValidator & StandardSchemaV1<any>,\n\n /** Create an array validator */\n array: <T extends BaseValidator>(validator: T, errorMessage?: string) =>\n new ArrayValidator(validator, errorMessage) as ArrayValidator & {\n validator: T;\n } & StandardSchemaV1<Array<Infer<T>>>,\n\n /** Create a record validator - object with dynamic keys and consistent value types */\n record: <T extends BaseValidator>(validator?: T, errorMessage?: string) =>\n new RecordValidator(validator || v.any(), errorMessage) as RecordValidator & {\n valueValidator: T;\n } & StandardSchemaV1<Record<string, Infer<T>>>,\n\n /** Create a tuple validator - fixed-length array with position-specific types */\n tuple: <T extends BaseValidator[]>(validators: T, errorMessage?: string) =>\n new TupleValidator(validators, errorMessage) as TupleValidator & {\n validators: T;\n } & StandardSchemaV1<{ [K in keyof T]: Infer<T[K]> }>,\n\n /** Create a date validator */\n date: (errorMessage?: string) =>\n new DateValidator(errorMessage) as DateValidator & StandardSchemaV1<Date>,\n\n /**\n * Create a literal validator — narrows to the union of given literal values\n *\n * @example\n * v.literal(\"items\") // type: \"items\"\n * v.literal(\"draft\", \"published\") // type: \"draft\" | \"published\"\n * v.literal(1, 2, 3) // type: 1 | 2 | 3\n */\n literal: <T extends readonly [string | number | boolean, ...(string | number | boolean)[]]>(\n ...values: T\n ) => new LiteralValidator<T>(values) as LiteralValidator<T> & StandardSchemaV1<T[number]>,\n\n /**\n * Create an instanceof validator — value must be `instanceof` the constructor\n *\n * @example\n * v.instanceof(File) // type: File\n * v.instanceof(Buffer) // type: Buffer\n * v.instanceof(MyClass) // type: MyClass\n */\n instanceof: <T>(ctor: new (...args: any[]) => T, errorMessage?: string) =>\n new InstanceOfValidator<T>(ctor, errorMessage) as InstanceOfValidator<T> & StandardSchemaV1<T>,\n\n /**\n * Create a lazy validator — defers resolution of the inner validator until\n * validate-time. Use for recursive or forward-referenced schemas.\n *\n * @example\n * type Category = { name: string; children: Category[] };\n *\n * const category: ObjectValidator<...> = v.object({\n * name: v.string(),\n * children: v.array(v.lazy(() => category)),\n * });\n */\n lazy: <T extends BaseValidator>(thunk: () => T) =>\n new LazyValidator(thunk) as LazyValidator<T> & StandardSchemaV1<Infer<T>>,\n\n /** Create a string validator */\n string,\n\n /** Create an email validator */\n email: (emailErrorMessage?: string, errorMessage?: string) =>\n new StringValidator(errorMessage).email(emailErrorMessage) as StringValidator &\n StandardSchemaV1<string>,\n\n /**\n * Create an enum validator — preserves the literal union of accepted\n * values in the inferred Standard Schema output.\n *\n * Two input shapes:\n * - Tuple of literals: `v.enum([\"draft\", \"published\"])` →\n * `StandardSchemaV1<\"draft\" | \"published\">`\n * - TypeScript enum object: `v.enum(Status)` →\n * `StandardSchemaV1<Status[keyof Status]>`\n *\n * Implementation is loosely typed; the public `ValidatorV.enum`\n * surface declares the precise overloads.\n */\n enum: ((values: any, errorMessage?: string) =>\n Array.isArray(values)\n ? new ScalarValidator().oneOf(values, errorMessage)\n : new ScalarValidator().enum(values, errorMessage)) as ValidatorV[\"enum\"],\n\n /** Create a number validator */\n number: (errorMessage?: string) =>\n new NumberValidator(errorMessage) as NumberValidator & StandardSchemaV1<number>,\n\n /** Create a numeric validator */\n numeric: (errorMessage?: string) =>\n new NumericValidator(errorMessage) as NumericValidator & StandardSchemaV1<number>,\n\n /** Create an integer validator */\n int: (errorMessage?: string) =>\n new IntValidator(errorMessage) as IntValidator & StandardSchemaV1<number>,\n\n /** Create a float validator */\n float: (errorMessage?: string) =>\n new FloatValidator(errorMessage) as FloatValidator & StandardSchemaV1<number>,\n\n /** Create a boolean validator */\n boolean: (errorMessage?: string) =>\n new BooleanValidator(errorMessage) as BooleanValidator & StandardSchemaV1<boolean>,\n\n /** Create a scalar validator */\n scalar: (errorMessage?: string) =>\n new ScalarValidator(errorMessage) as ScalarValidator &\n StandardSchemaV1<string | number | boolean>,\n\n /** Create a union validator - validates against multiple types */\n union: <T extends BaseValidator[]>(validators: T, errorMessage?: string) =>\n new UnionValidator().union(validators, errorMessage) as UnionValidator &\n StandardSchemaV1<Infer<T[number]>>,\n\n /**\n * Create a discriminated union — routes payloads by a shared literal\n * discriminator field. Each branch must be a `v.object(...)` with the\n * discriminator typed as `v.literal(...)`.\n *\n * @example\n * const email = v.object({ type: v.literal(\"email\"), email: v.string().email() });\n * const sms = v.object({ type: v.literal(\"sms\"), phone: v.string() });\n * const notif = v.discriminatedUnion(\"type\", [email, sms]);\n * // type T = Infer<typeof notif>;\n * // → { type: \"email\", email: string } | { type: \"sms\", phone: string }\n */\n discriminatedUnion: <K extends string, Branches extends ReadonlyArray<ObjectValidator<any>>>(\n discriminator: K,\n validators: Branches,\n ) =>\n new DiscriminatedUnionValidator(discriminator, validators) as DiscriminatedUnionValidator<\n K,\n Branches\n > &\n StandardSchemaV1<Infer.Input<Branches[number]>, Infer.Output<Branches[number]>>,\n\n /** Create a computed field validator - derives value from other validated fields */\n computed: <TResult = any>(\n callback: (data: any, context: SchemaContext) => TResult | Promise<TResult>,\n resultValidator?: BaseValidator,\n ) =>\n new ComputedValidator<TResult>(callback, resultValidator) as ComputedValidator<TResult> &\n StandardSchemaV1<TResult>,\n\n /** Create a managed field validator - framework-injected value */\n managed: <TResult = any>(\n callback: (context: SchemaContext) => TResult | Promise<TResult>,\n resultValidator?: BaseValidator,\n ) =>\n new ManagedValidator<TResult>(callback, resultValidator) as ManagedValidator<TResult> &\n StandardSchemaV1<TResult>,\n\n /** Validate data against a schema */\n validate: validateFunction,\n} as unknown as ValidatorV;\n\nexport type ValidateOptions = {\n context?: Record<string, any>;\n /**\n * Rendered as `:value` in every error message — translated or custom —\n * instead of the submitted input. Unset keeps the raw value.\n */\n redactValue?: string;\n} & SealConfig;\n\nexport interface ValidatorV {\n object: <T extends Schema>(\n schema: T,\n errorMessage?: string,\n ) => ObjectValidator<T> & StandardSchemaV1<Infer<ObjectValidator<T>>>;\n any: () => AnyValidator & StandardSchemaV1<any>;\n array: <T extends BaseValidator>(\n validator: T,\n errorMessage?: string,\n ) => ArrayValidator & {\n validator: T;\n } & StandardSchemaV1<Array<Infer<T>>>;\n record: <T extends BaseValidator>(\n validator?: T,\n errorMessage?: string,\n ) => RecordValidator & {\n valueValidator: T;\n } & StandardSchemaV1<Record<string, Infer<T>>>;\n tuple: <T extends BaseValidator[]>(\n validators: T,\n errorMessage?: string,\n ) => TupleValidator & {\n validators: T;\n } & StandardSchemaV1<{ [K in keyof T]: Infer<T[K]> }>;\n date: (errorMessage?: string) => DateValidator & StandardSchemaV1<Date>;\n literal: <T extends readonly [string | number | boolean, ...(string | number | boolean)[]]>(\n ...values: T\n ) => LiteralValidator<T> & StandardSchemaV1<T[number]>;\n instanceof: <T>(\n ctor: new (...args: any[]) => T,\n errorMessage?: string,\n ) => InstanceOfValidator<T> & StandardSchemaV1<T>;\n lazy: <T extends BaseValidator>(thunk: () => T) => LazyValidator<T> & StandardSchemaV1<Infer<T>>;\n string: (errorMessage?: string) => StringValidator & StandardSchemaV1<string>;\n email: (errorMessage?: string) => StringValidator & StandardSchemaV1<string>;\n enum: {\n <const T extends readonly (string | number | boolean)[]>(\n values: T,\n errorMessage?: string,\n ): ScalarValidator & StandardSchemaV1<T[number]>;\n <const T extends Record<string, string | number>>(\n values: T,\n errorMessage?: string,\n ): ScalarValidator & StandardSchemaV1<T[keyof T]>;\n };\n number: (errorMessage?: string) => NumberValidator & StandardSchemaV1<number>;\n numeric: (errorMessage?: string) => NumericValidator & StandardSchemaV1<number>;\n int: (errorMessage?: string) => IntValidator & StandardSchemaV1<number>;\n float: (errorMessage?: string) => FloatValidator & StandardSchemaV1<number>;\n boolean: (errorMessage?: string) => BooleanValidator & StandardSchemaV1<boolean>;\n scalar: (errorMessage?: string) => ScalarValidator & StandardSchemaV1<string | number | boolean>;\n union: <T extends BaseValidator[]>(\n validators: T,\n errorMessage?: string,\n ) => UnionValidator & StandardSchemaV1<Infer<T[number]>>;\n discriminatedUnion: <K extends string, Branches extends ReadonlyArray<ObjectValidator<any>>>(\n discriminator: K,\n validators: Branches,\n ) => DiscriminatedUnionValidator<K, Branches> &\n StandardSchemaV1<Infer.Input<Branches[number]>, Infer.Output<Branches[number]>>;\n computed: <TResult = any>(\n callback: (data: any, context: SchemaContext) => TResult | Promise<TResult>,\n resultValidator?: BaseValidator,\n ) => ComputedValidator<TResult> & StandardSchemaV1<TResult>;\n managed: <TResult = any>(\n callback?: (context: SchemaContext) => TResult | Promise<TResult>,\n resultValidator?: BaseValidator,\n ) => ManagedValidator<TResult> & StandardSchemaV1<TResult>;\n validate: <T extends BaseValidator>(\n schema: T,\n data: unknown,\n options?: ValidateOptions,\n ) => Promise<TypedValidationResult<ValidatedOutput<T>>>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CA,MAAa,IAAgB;;CAE3B;;CAGA,WAAW,IAAI,aAAa;;CAG5B,QAAiC,WAAc,iBAC7C,IAAI,eAAe,WAAW,YAAY;;CAK5C,SAAkC,WAAe,iBAC/C,IAAI,gBAAgB,aAAa,EAAE,IAAI,GAAG,YAAY;;CAKxD,QAAmC,YAAe,iBAChD,IAAI,eAAe,YAAY,YAAY;;CAK7C,OAAO,iBACL,IAAI,cAAc,YAAY;;;;;;;;;CAUhC,UACE,GAAG,WACA,IAAI,iBAAoB,MAAM;;;;;;;;;CAUnC,aAAgB,MAAiC,iBAC/C,IAAI,oBAAuB,MAAM,YAAY;;;;;;;;;;;;;CAc/C,OAAgC,UAC9B,IAAI,cAAc,KAAK;;CAGzB;;CAGA,QAAQ,mBAA4B,iBAClC,IAAI,gBAAgB,YAAY,CAAC,CAAC,MAAM,iBAAiB;;;;;;;;;;;;;;CAgB3D,QAAQ,QAAa,iBACnB,MAAM,QAAQ,MAAM,IAChB,IAAI,gBAAgB,CAAC,CAAC,MAAM,QAAQ,YAAY,IAChD,IAAI,gBAAgB,CAAC,CAAC,KAAK,QAAQ,YAAY;;CAGrD,SAAS,iBACP,IAAI,gBAAgB,YAAY;;CAGlC,UAAU,iBACR,IAAI,iBAAiB,YAAY;;CAGnC,MAAM,iBACJ,IAAI,aAAa,YAAY;;CAG/B,QAAQ,iBACN,IAAI,eAAe,YAAY;;CAGjC,UAAU,iBACR,IAAI,iBAAiB,YAAY;;CAGnC,SAAS,iBACP,IAAI,gBAAgB,YAAY;;CAIlC,QAAmC,YAAe,iBAChD,IAAI,eAAe,CAAC,CAAC,MAAM,YAAY,YAAY;;;;;;;;;;;;;CAerD,qBACE,eACA,eAEA,IAAI,4BAA4B,eAAe,UAAU;;CAO3D,WACE,UACA,oBAEA,IAAI,kBAA2B,UAAU,eAAe;;CAI1D,UACE,UACA,oBAEA,IAAI,iBAA0B,UAAU,eAAe;;CAI/CA;AACZ"}
|
|
1
|
+
{"version":3,"file":"validators.mjs","names":["validateFunction"],"sources":["../../../../../../../../packages/seal/src/factory/validators.ts"],"sourcesContent":["import type { SealConfig } from \"../config\";\nimport { object } from \"../object\";\nimport { string } from \"../string\";\nimport type { StandardSchemaV1 } from \"../standard-schema/types\";\nimport type { Schema, SchemaContext, TypedValidationResult, ValidatedOutput } from \"../types\";\nimport type { Infer } from \"../types/inference-types\";\nimport { AnyValidator } from \"../validators/any-validator\";\nimport { ArrayValidator } from \"../validators/array-validator\";\nimport type { BaseValidator } from \"../validators/base-validator\";\nimport { BooleanValidator } from \"../validators/boolean-validator\";\nimport { ComputedValidator } from \"../validators/computed-validator\";\nimport { DateValidator } from \"../validators/date-validator\";\nimport { DiscriminatedUnionValidator } from \"../validators/discriminated-union-validator\";\nimport { FloatValidator } from \"../validators/float-validator\";\nimport { InstanceOfValidator } from \"../validators/instanceof-validator\";\nimport { IntValidator } from \"../validators/int-validator\";\nimport { LazyValidator } from \"../validators/lazy-validator\";\nimport { LiteralValidator } from \"../validators/literal-validator\";\nimport { ManagedValidator } from \"../validators/managed-validator\";\nimport { NumberValidator } from \"../validators/number-validator\";\nimport { NumericValidator } from \"../validators/numeric-validator\";\nimport { ObjectValidator } from \"../validators/object-validator\";\nimport { RecordValidator } from \"../validators/record-validator\";\nimport { ScalarValidator } from \"../validators/scalar-validator\";\nimport { StringValidator } from \"../validators/string-validator\";\nimport { TupleValidator } from \"../validators/tuple-validator\";\nimport { UnionValidator } from \"../validators/union-validator\";\n// BaseValidator prototype augmentations — side-effect imports so the `v`\n// factory always exposes the chain methods (.required, .requiredIf, .sameAs,\n// .present, .forbidden, .when, …) regardless of which entry path loaded it.\n// The package barrel (src/index.ts) loads these via the validators barrel, but\n// importing the factory leaf directly would otherwise yield a half-built `v`.\nimport \"../validators/methods/equality-conditional-methods\";\nimport \"../validators/methods/forbidden-methods\";\nimport \"../validators/methods/present-methods\";\nimport \"../validators/methods/required-methods\";\nimport { validate as validateFunction } from \"./validate\";\n\n/**\n * Seal factory object - creates instances of validators\n *\n * Use 'v' to create validation schemas (seals) for your data\n */\nexport const v: ValidatorV = {\n /** Create an object validator */\n object,\n\n /** Create an any validator */\n any: () => new AnyValidator() as AnyValidator & StandardSchemaV1<any>,\n\n /** Create an array validator */\n array: <T extends BaseValidator>(validator: T, errorMessage?: string) =>\n new ArrayValidator(validator, errorMessage) as ArrayValidator & {\n validator: T;\n } & StandardSchemaV1<Array<Infer.Input<T>>, Array<Infer.Output<T>>>,\n\n /** Create a record validator - object with dynamic keys and consistent value types */\n record: <T extends BaseValidator>(validator?: T, errorMessage?: string) =>\n new RecordValidator(validator || v.any(), errorMessage) as StandardSchemaV1<\n Record<string, Infer.Input<T>>,\n Record<string, Infer.Output<T>>\n > &\n RecordValidator & { valueValidator: T },\n\n /**\n * Create a tuple validator - fixed-length array with position-specific types.\n *\n * The `| []` in the constraint makes TypeScript infer a literal list as a tuple, so\n * `v.tuple([v.string(), v.int()])` is typed `[string, number]` rather than\n * `(string | number)[]`; a `BaseValidator[]` variable is still accepted.\n */\n tuple: <T extends BaseValidator[] | []>(validators: T, errorMessage?: string) =>\n new TupleValidator(validators, errorMessage) as TupleValidator & {\n validators: T;\n } & StandardSchemaV1<\n { [K in keyof T]: Infer.Input<T[K]> },\n { [K in keyof T]: Infer.Output<T[K]> }\n >,\n\n /** Create a date validator */\n date: (errorMessage?: string) =>\n new DateValidator(errorMessage) as DateValidator & StandardSchemaV1<Date>,\n\n /**\n * Create a literal validator — narrows to the union of given literal values\n *\n * @example\n * v.literal(\"items\") // type: \"items\"\n * v.literal(\"draft\", \"published\") // type: \"draft\" | \"published\"\n * v.literal(1, 2, 3) // type: 1 | 2 | 3\n */\n literal: <T extends readonly [string | number | boolean, ...(string | number | boolean)[]]>(\n ...values: T\n ) => new LiteralValidator<T>(values) as LiteralValidator<T> & StandardSchemaV1<T[number]>,\n\n /**\n * Create an instanceof validator — value must be `instanceof` the constructor\n *\n * @example\n * v.instanceof(File) // type: File\n * v.instanceof(Buffer) // type: Buffer\n * v.instanceof(MyClass) // type: MyClass\n */\n instanceof: <T>(ctor: new (...args: any[]) => T, errorMessage?: string) =>\n new InstanceOfValidator<T>(ctor, errorMessage) as InstanceOfValidator<T> & StandardSchemaV1<T>,\n\n /**\n * Create a lazy validator — defers resolution of the inner validator until\n * validate-time. Use for recursive or forward-referenced schemas.\n *\n * @example\n * type Category = { name: string; children: Category[] };\n *\n * const category: ObjectValidator<...> = v.object({\n * name: v.string(),\n * children: v.array(v.lazy(() => category)),\n * });\n */\n lazy: <T extends BaseValidator>(thunk: () => T) =>\n new LazyValidator(thunk) as LazyValidator<T> &\n StandardSchemaV1<Infer.Input<T>, Infer.Output<T>>,\n\n /** Create a string validator */\n string,\n\n /** Create an email validator */\n email: (emailErrorMessage?: string, errorMessage?: string) =>\n new StringValidator(errorMessage).email(emailErrorMessage) as StringValidator &\n StandardSchemaV1<string>,\n\n /**\n * Create an enum validator — preserves the literal union of accepted\n * values in the inferred Standard Schema output.\n *\n * Two input shapes:\n * - Tuple of literals: `v.enum([\"draft\", \"published\"])` →\n * `StandardSchemaV1<\"draft\" | \"published\">`\n * - TypeScript enum object: `v.enum(Status)` →\n * `StandardSchemaV1<Status[keyof Status]>`\n *\n * Implementation is loosely typed; the public `ValidatorV.enum`\n * surface declares the precise overloads.\n */\n enum: ((values: any, errorMessage?: string) =>\n Array.isArray(values)\n ? new ScalarValidator().oneOf(values, errorMessage)\n : new ScalarValidator().enum(values, errorMessage)) as ValidatorV[\"enum\"],\n\n /** Create a number validator */\n number: (errorMessage?: string) =>\n new NumberValidator(errorMessage) as NumberValidator & StandardSchemaV1<number>,\n\n /** Create a numeric validator */\n numeric: (errorMessage?: string) =>\n new NumericValidator(errorMessage) as NumericValidator & StandardSchemaV1<number>,\n\n /** Create an integer validator */\n int: (errorMessage?: string) =>\n new IntValidator(errorMessage) as IntValidator & StandardSchemaV1<number>,\n\n /** Create a float validator */\n float: (errorMessage?: string) =>\n new FloatValidator(errorMessage) as FloatValidator & StandardSchemaV1<number>,\n\n /** Create a boolean validator */\n boolean: (errorMessage?: string) =>\n new BooleanValidator(errorMessage) as BooleanValidator & StandardSchemaV1<boolean>,\n\n /** Create a scalar validator */\n scalar: (errorMessage?: string) =>\n new ScalarValidator(errorMessage) as ScalarValidator &\n StandardSchemaV1<string | number | boolean>,\n\n /** Create a union validator - validates against multiple types */\n union: <T extends BaseValidator[]>(validators: T, errorMessage?: string) =>\n new UnionValidator().union(validators, errorMessage) as StandardSchemaV1<\n Infer.Input<T[number]>,\n Infer.Output<T[number]>\n > &\n UnionValidator,\n\n /**\n * Create a discriminated union — routes payloads by a shared literal\n * discriminator field. Each branch must be a `v.object(...)` with the\n * discriminator typed as `v.literal(...)`.\n *\n * @example\n * const email = v.object({ type: v.literal(\"email\"), email: v.string().email() });\n * const sms = v.object({ type: v.literal(\"sms\"), phone: v.string() });\n * const notif = v.discriminatedUnion(\"type\", [email, sms]);\n * // type T = Infer<typeof notif>;\n * // → { type: \"email\", email: string } | { type: \"sms\", phone: string }\n */\n discriminatedUnion: <K extends string, Branches extends ReadonlyArray<ObjectValidator<any>>>(\n discriminator: K,\n validators: Branches,\n ) =>\n new DiscriminatedUnionValidator(discriminator, validators) as DiscriminatedUnionValidator<\n K,\n Branches\n > &\n StandardSchemaV1<Infer.Input<Branches[number]>, Infer.Output<Branches[number]>>,\n\n /** Create a computed field validator - derives value from other validated fields */\n computed: <TResult = any>(\n callback: (data: any, context: SchemaContext) => TResult | Promise<TResult>,\n resultValidator?: BaseValidator,\n ) =>\n new ComputedValidator<TResult>(callback, resultValidator) as ComputedValidator<TResult> &\n StandardSchemaV1<TResult>,\n\n /** Create a managed field validator - framework-injected value */\n managed: <TResult = any>(\n callback: (context: SchemaContext) => TResult | Promise<TResult>,\n resultValidator?: BaseValidator,\n ) =>\n new ManagedValidator<TResult>(callback, resultValidator) as ManagedValidator<TResult> &\n StandardSchemaV1<TResult>,\n\n /** Validate data against a schema */\n validate: validateFunction,\n} as unknown as ValidatorV;\n\nexport type ValidateOptions = {\n context?: Record<string, any>;\n /**\n * Rendered as `:value` in every error message — translated or custom —\n * instead of the submitted input. Unset keeps the raw value.\n */\n redactValue?: string;\n} & SealConfig;\n\n// Standard Schema comes first on record/union intersections so direct calls\n// select the precise validate() output overload rather than BaseValidator's.\nexport interface ValidatorV {\n object: <T extends Schema>(schema: T, errorMessage?: string) => ObjectValidator<T>;\n any: () => AnyValidator & StandardSchemaV1<any>;\n array: <T extends BaseValidator>(\n validator: T,\n errorMessage?: string,\n ) => ArrayValidator & {\n validator: T;\n } & StandardSchemaV1<Array<Infer.Input<T>>, Array<Infer.Output<T>>>;\n record: <T extends BaseValidator>(\n validator?: T,\n errorMessage?: string,\n ) => StandardSchemaV1<Record<string, Infer.Input<T>>, Record<string, Infer.Output<T>>> &\n RecordValidator & { valueValidator: T };\n tuple: <T extends BaseValidator[] | []>(\n validators: T,\n errorMessage?: string,\n ) => TupleValidator & {\n validators: T;\n } & StandardSchemaV1<\n { [K in keyof T]: Infer.Input<T[K]> },\n { [K in keyof T]: Infer.Output<T[K]> }\n >;\n date: (errorMessage?: string) => DateValidator & StandardSchemaV1<Date>;\n literal: <T extends readonly [string | number | boolean, ...(string | number | boolean)[]]>(\n ...values: T\n ) => LiteralValidator<T> & StandardSchemaV1<T[number]>;\n instanceof: <T>(\n ctor: new (...args: any[]) => T,\n errorMessage?: string,\n ) => InstanceOfValidator<T> & StandardSchemaV1<T>;\n lazy: <T extends BaseValidator>(\n thunk: () => T,\n ) => LazyValidator<T> & StandardSchemaV1<Infer.Input<T>, Infer.Output<T>>;\n string: (errorMessage?: string) => StringValidator & StandardSchemaV1<string>;\n email: (errorMessage?: string) => StringValidator & StandardSchemaV1<string>;\n enum: {\n <const T extends readonly (string | number | boolean)[]>(\n values: T,\n errorMessage?: string,\n ): ScalarValidator & StandardSchemaV1<T[number]>;\n <const T extends Record<string, string | number>>(\n values: T,\n errorMessage?: string,\n ): ScalarValidator & StandardSchemaV1<T[keyof T]>;\n };\n number: (errorMessage?: string) => NumberValidator & StandardSchemaV1<number>;\n numeric: (errorMessage?: string) => NumericValidator & StandardSchemaV1<number>;\n int: (errorMessage?: string) => IntValidator & StandardSchemaV1<number>;\n float: (errorMessage?: string) => FloatValidator & StandardSchemaV1<number>;\n boolean: (errorMessage?: string) => BooleanValidator & StandardSchemaV1<boolean>;\n scalar: (errorMessage?: string) => ScalarValidator & StandardSchemaV1<string | number | boolean>;\n union: <T extends BaseValidator[]>(\n validators: T,\n errorMessage?: string,\n ) => StandardSchemaV1<Infer.Input<T[number]>, Infer.Output<T[number]>> & UnionValidator;\n discriminatedUnion: <K extends string, Branches extends ReadonlyArray<ObjectValidator<any>>>(\n discriminator: K,\n validators: Branches,\n ) => DiscriminatedUnionValidator<K, Branches> &\n StandardSchemaV1<Infer.Input<Branches[number]>, Infer.Output<Branches[number]>>;\n computed: <TResult = any>(\n callback: (data: any, context: SchemaContext) => TResult | Promise<TResult>,\n resultValidator?: BaseValidator,\n ) => ComputedValidator<TResult> & StandardSchemaV1<TResult>;\n managed: <TResult = any>(\n callback?: (context: SchemaContext) => TResult | Promise<TResult>,\n resultValidator?: BaseValidator,\n ) => ManagedValidator<TResult> & StandardSchemaV1<TResult>;\n validate: <T extends BaseValidator>(\n schema: T,\n data: unknown,\n options?: ValidateOptions,\n ) => Promise<TypedValidationResult<ValidatedOutput<T>>>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2CA,MAAa,IAAgB;;CAE3B;;CAGA,WAAW,IAAI,aAAa;;CAG5B,QAAiC,WAAc,iBAC7C,IAAI,eAAe,WAAW,YAAY;;CAK5C,SAAkC,WAAe,iBAC/C,IAAI,gBAAgB,aAAa,EAAE,IAAI,GAAG,YAAY;;;;;;;;CAaxD,QAAwC,YAAe,iBACrD,IAAI,eAAe,YAAY,YAAY;;CAQ7C,OAAO,iBACL,IAAI,cAAc,YAAY;;;;;;;;;CAUhC,UACE,GAAG,WACA,IAAI,iBAAoB,MAAM;;;;;;;;;CAUnC,aAAgB,MAAiC,iBAC/C,IAAI,oBAAuB,MAAM,YAAY;;;;;;;;;;;;;CAc/C,OAAgC,UAC9B,IAAI,cAAc,KAAK;;CAIzB;;CAGA,QAAQ,mBAA4B,iBAClC,IAAI,gBAAgB,YAAY,CAAC,CAAC,MAAM,iBAAiB;;;;;;;;;;;;;;CAgB3D,QAAQ,QAAa,iBACnB,MAAM,QAAQ,MAAM,IAChB,IAAI,gBAAgB,CAAC,CAAC,MAAM,QAAQ,YAAY,IAChD,IAAI,gBAAgB,CAAC,CAAC,KAAK,QAAQ,YAAY;;CAGrD,SAAS,iBACP,IAAI,gBAAgB,YAAY;;CAGlC,UAAU,iBACR,IAAI,iBAAiB,YAAY;;CAGnC,MAAM,iBACJ,IAAI,aAAa,YAAY;;CAG/B,QAAQ,iBACN,IAAI,eAAe,YAAY;;CAGjC,UAAU,iBACR,IAAI,iBAAiB,YAAY;;CAGnC,SAAS,iBACP,IAAI,gBAAgB,YAAY;;CAIlC,QAAmC,YAAe,iBAChD,IAAI,eAAe,CAAC,CAAC,MAAM,YAAY,YAAY;;;;;;;;;;;;;CAkBrD,qBACE,eACA,eAEA,IAAI,4BAA4B,eAAe,UAAU;;CAO3D,WACE,UACA,oBAEA,IAAI,kBAA2B,UAAU,eAAe;;CAI1D,UACE,UACA,oBAEA,IAAI,iBAA0B,UAAU,eAAe;;CAI/CA;AACZ"}
|
|
@@ -13,7 +13,6 @@
|
|
|
13
13
|
* @param value - Value to check
|
|
14
14
|
* @returns true if it's a date value, false if it's a field name
|
|
15
15
|
*/
|
|
16
|
-
declare function isDateValue(value: any): boolean;
|
|
16
|
+
export declare function isDateValue(value: any): boolean;
|
|
17
17
|
//#endregion
|
|
18
|
-
export { isDateValue };
|
|
19
18
|
//# sourceMappingURL=date-helpers.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-helpers.d.mts","names":[],"sources":["../../../../../../../../packages/seal/src/helpers/date-helpers.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"date-helpers.d.mts","names":[],"sources":["../../../../../../../../packages/seal/src/helpers/date-helpers.ts"],"mappings":";;;;;;;;;;;;;;;wBAcgB,YAAY"}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { FileSizeOption } from "../types/file.types.mjs";
|
|
2
|
-
|
|
3
2
|
//#region ../../packages/seal/src/helpers/file.utils.d.ts
|
|
4
|
-
declare function resolveFileSize(size: number | FileSizeOption): number;
|
|
3
|
+
export declare function resolveFileSize(size: number | FileSizeOption): number;
|
|
5
4
|
/**
|
|
6
5
|
* Convert the given size to a human size
|
|
7
6
|
* i.e 2MB, 0.5MB, 120KB, 1.5GB..etc
|
|
8
7
|
*/
|
|
9
|
-
declare function humanizeSize(sizeInBits: number): string;
|
|
8
|
+
export declare function humanizeSize(sizeInBits: number): string;
|
|
10
9
|
//#endregion
|
|
11
|
-
export { humanizeSize, resolveFileSize };
|
|
12
10
|
//# sourceMappingURL=file.utils.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.utils.d.mts","names":[],"sources":["../../../../../../../../packages/seal/src/helpers/file.utils.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"file.utils.d.mts","names":[],"sources":["../../../../../../../../packages/seal/src/helpers/file.utils.ts"],"mappings":";;wBAEgB,gBAAgB,eAAe;;;;;wBAqB/B,aAAa"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ContextualSchemaRule } from "../types/rule-types.mjs";
|
|
2
2
|
import { SchemaContext } from "../types/context-types.mjs";
|
|
3
|
-
|
|
3
|
+
import "../types/index.mjs";
|
|
4
4
|
//#region ../../packages/seal/src/helpers/get-field-value.d.ts
|
|
5
5
|
/**
|
|
6
6
|
* Get field value based on scope from rule options
|
|
@@ -36,7 +36,6 @@ import { SchemaContext } from "../types/context-types.mjs";
|
|
|
36
36
|
* - **Sibling scope** (`scope: "sibling"`): Searches only within the parent object (context.parent)
|
|
37
37
|
* - Uses `@mongez/reinforcements.get()` to support nested paths (e.g., "user.email")
|
|
38
38
|
*/
|
|
39
|
-
declare function getFieldValue(rule: ContextualSchemaRule, context: SchemaContext, fieldKey?: string): any;
|
|
39
|
+
export declare function getFieldValue(rule: ContextualSchemaRule, context: SchemaContext, fieldKey?: string): any;
|
|
40
40
|
//#endregion
|
|
41
|
-
export { getFieldValue };
|
|
42
41
|
//# sourceMappingURL=get-field-value.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-field-value.d.mts","names":[],"sources":["../../../../../../../../packages/seal/src/helpers/get-field-value.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"get-field-value.d.mts","names":[],"sources":["../../../../../../../../packages/seal/src/helpers/get-field-value.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAqCgB,cACd,MAAM,sBACN,SAAS,eACT"}
|
|
@@ -37,7 +37,8 @@ import { get } from "@mongez/reinforcements";
|
|
|
37
37
|
*/
|
|
38
38
|
function getFieldValue(rule, context, fieldKey = "field") {
|
|
39
39
|
const field = rule.context.options[fieldKey];
|
|
40
|
-
|
|
40
|
+
const source = (rule.context.options.scope || "global") === "sibling" ? context.parent : context.allValues;
|
|
41
|
+
return get(source, field);
|
|
41
42
|
}
|
|
42
43
|
|
|
43
44
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-field-value.mjs","names":[],"sources":["../../../../../../../../packages/seal/src/helpers/get-field-value.ts"],"sourcesContent":["import { get } from \"@mongez/reinforcements\";\nimport type { ContextualSchemaRule, SchemaContext } from \"../types\";\n\n/**\n * Get field value based on scope from rule options\n *\n * This utility extracts a field value from either the global context or sibling context\n * based on the `scope` option in the rule's context.\n *\n * @param rule - The contextual schema rule containing options with:\n * - `field` (or custom fieldKey): The field name to extract\n * - `scope` (optional): Either \"global\" (default) or \"sibling\"\n * @param context - The schema validation context containing allValues and parent\n * @param fieldKey - The key in rule.context.options that contains the field name (defaults to \"field\")\n *\n * @returns The value of the specified field from the appropriate source\n *\n * @example\n * // In a validation rule with scope support:\n * async validate(value: any, context) {\n * const otherFieldValue = getFieldValue(this, context);\n * // Extracts from context.allValues if scope is \"global\"\n * // Extracts from context.parent if scope is \"sibling\"\n * }\n *\n * @example\n * // Using a custom field key:\n * async validate(value: any, context) {\n * const compareValue = getFieldValue(this, context, \"compareField\");\n * // Looks for rule.context.options.compareField instead of .field\n * }\n *\n * @remarks\n * - **Global scope** (`scope: \"global\"`): Searches the entire input data (context.allValues)\n * - **Sibling scope** (`scope: \"sibling\"`): Searches only within the parent object (context.parent)\n * - Uses `@mongez/reinforcements.get()` to support nested paths (e.g., \"user.email\")\n */\nexport function getFieldValue(\n rule: ContextualSchemaRule,\n context: SchemaContext,\n fieldKey = \"field\",\n) {\n const field = rule.context.options[fieldKey];\n const scope = rule.context.options.scope || \"global\";\n const source = scope === \"sibling\" ? context.parent : context.allValues;\n return get(source, field);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCA,SAAgB,cACd,MACA,SACA,WAAW,SACX;CACA,MAAM,QAAQ,KAAK,QAAQ,QAAQ;
|
|
1
|
+
{"version":3,"file":"get-field-value.mjs","names":[],"sources":["../../../../../../../../packages/seal/src/helpers/get-field-value.ts"],"sourcesContent":["import { get } from \"@mongez/reinforcements\";\nimport type { ContextualSchemaRule, SchemaContext } from \"../types\";\n\n/**\n * Get field value based on scope from rule options\n *\n * This utility extracts a field value from either the global context or sibling context\n * based on the `scope` option in the rule's context.\n *\n * @param rule - The contextual schema rule containing options with:\n * - `field` (or custom fieldKey): The field name to extract\n * - `scope` (optional): Either \"global\" (default) or \"sibling\"\n * @param context - The schema validation context containing allValues and parent\n * @param fieldKey - The key in rule.context.options that contains the field name (defaults to \"field\")\n *\n * @returns The value of the specified field from the appropriate source\n *\n * @example\n * // In a validation rule with scope support:\n * async validate(value: any, context) {\n * const otherFieldValue = getFieldValue(this, context);\n * // Extracts from context.allValues if scope is \"global\"\n * // Extracts from context.parent if scope is \"sibling\"\n * }\n *\n * @example\n * // Using a custom field key:\n * async validate(value: any, context) {\n * const compareValue = getFieldValue(this, context, \"compareField\");\n * // Looks for rule.context.options.compareField instead of .field\n * }\n *\n * @remarks\n * - **Global scope** (`scope: \"global\"`): Searches the entire input data (context.allValues)\n * - **Sibling scope** (`scope: \"sibling\"`): Searches only within the parent object (context.parent)\n * - Uses `@mongez/reinforcements.get()` to support nested paths (e.g., \"user.email\")\n */\nexport function getFieldValue(\n rule: ContextualSchemaRule,\n context: SchemaContext,\n fieldKey = \"field\",\n) {\n const field = rule.context.options[fieldKey];\n const scope = rule.context.options.scope || \"global\";\n const source = scope === \"sibling\" ? context.parent : context.allValues;\n return get(source, field);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCA,SAAgB,cACd,MACA,SACA,WAAW,SACX;CACA,MAAM,QAAQ,KAAK,QAAQ,QAAQ;CAEnC,MAAM,UADQ,KAAK,QAAQ,QAAQ,SAAS,cACnB,YAAY,QAAQ,SAAS,QAAQ;CAC9D,OAAO,IAAI,QAAQ,KAAK;AAC1B"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { isDateValue } from "./date-helpers.mjs";
|
|
2
|
+
import { humanizeSize, resolveFileSize } from "./file.utils.mjs";
|
|
3
|
+
import { getFieldValue } from "./get-field-value.mjs";
|
|
4
|
+
import { setKeyPath } from "./path-helpers.mjs";
|
|
5
|
+
import { VALID_RULE, invalidRule, resolveTranslation } from "./validation-helpers.mjs";
|
|
6
|
+
export { VALID_RULE, getFieldValue, humanizeSize, invalidRule, isDateValue, resolveFileSize, resolveTranslation, setKeyPath };
|
package/esm/helpers/index.mjs
CHANGED
|
@@ -4,4 +4,4 @@ import { humanizeSize, resolveFileSize } from "./file.utils.mjs";
|
|
|
4
4
|
import { getFieldValue } from "./get-field-value.mjs";
|
|
5
5
|
import { setKeyPath } from "./path-helpers.mjs";
|
|
6
6
|
|
|
7
|
-
export {
|
|
7
|
+
export { VALID_RULE, getFieldValue, humanizeSize, invalidRule, isDateValue, resolveFileSize, resolveTranslation, setKeyPath };
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Set the key path for nested validation
|
|
4
4
|
*/
|
|
5
|
-
declare const setKeyPath: (path: string, key: string) => string;
|
|
5
|
+
export declare const setKeyPath: (path: string, key: string) => string;
|
|
6
6
|
//#endregion
|
|
7
|
-
export { setKeyPath };
|
|
8
7
|
//# sourceMappingURL=path-helpers.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path-helpers.d.mts","names":[],"sources":["../../../../../../../../packages/seal/src/helpers/path-helpers.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"path-helpers.d.mts","names":[],"sources":["../../../../../../../../packages/seal/src/helpers/path-helpers.ts"],"mappings":";;;;qBAGa,aAAU,cAAgB"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ContextualSchemaRule, RuleResult } from "../types/rule-types.mjs";
|
|
2
2
|
import { SchemaContext } from "../types/context-types.mjs";
|
|
3
|
-
|
|
3
|
+
import "../types/index.mjs";
|
|
4
4
|
//#region ../../packages/seal/src/helpers/validation-helpers.d.ts
|
|
5
|
-
declare const VALID_RULE: RuleResult;
|
|
5
|
+
export declare const VALID_RULE: RuleResult;
|
|
6
6
|
/**
|
|
7
7
|
* Resolve a single attribute value through the full translation priority chain:
|
|
8
8
|
* 1. attributesList[key] — developer direct text override (highest priority)
|
|
@@ -19,18 +19,12 @@ declare const VALID_RULE: RuleResult;
|
|
|
19
19
|
* .join(", ");
|
|
20
20
|
* this.context.translationParams.enumList = enumList;
|
|
21
21
|
*/
|
|
22
|
-
declare const resolveTranslation: ({
|
|
23
|
-
key,
|
|
24
|
-
rawValue,
|
|
25
|
-
rule,
|
|
26
|
-
context
|
|
27
|
-
}: {
|
|
22
|
+
export declare const resolveTranslation: ({ key, rawValue, rule, context }: {
|
|
28
23
|
key: string;
|
|
29
24
|
rawValue: any;
|
|
30
25
|
rule: ContextualSchemaRule;
|
|
31
26
|
context: SchemaContext;
|
|
32
27
|
}) => string;
|
|
33
|
-
declare const invalidRule: (rule: ContextualSchemaRule, context: SchemaContext) => RuleResult;
|
|
28
|
+
export declare const invalidRule: (rule: ContextualSchemaRule, context: SchemaContext) => RuleResult;
|
|
34
29
|
//#endregion
|
|
35
|
-
export { VALID_RULE, invalidRule, resolveTranslation };
|
|
36
30
|
//# sourceMappingURL=validation-helpers.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation-helpers.d.mts","names":[],"sources":["../../../../../../../../packages/seal/src/helpers/validation-helpers.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"validation-helpers.d.mts","names":[],"sources":["../../../../../../../../packages/seal/src/helpers/validation-helpers.ts"],"mappings":";;;;qBAGa,YAAY;;;;;;;;;;;;;;;;;qBAmBZ,uBAAkB,KAAA,UAAA,MAAA;EAM7B;EACA;EACA,MAAM;EACN,SAAS;;qBAqBE,cAAW,MAAU,sBAAoB,SAAW,kBAAgB"}
|
package/esm/index.d.mts
CHANGED
|
@@ -10,6 +10,7 @@ import { ContextualizedTransformer, SimpleTransformerCallback, TransformerCallba
|
|
|
10
10
|
import { Infer, InferInput, InferInputObjectShape, InferObjectShape, InferOutput, InferOutputObjectShape, IsInputOptionalKey, IsOptionalKey, IsOutputOptionalKey, ValidatedOutput } from "./types/inference-types.mjs";
|
|
11
11
|
import { WEEK_DAYS, WeekDay } from "./types/date-types.mjs";
|
|
12
12
|
import { FileSizeOption } from "./types/file.types.mjs";
|
|
13
|
+
import "./types/index.mjs";
|
|
13
14
|
import { BaseValidator } from "./validators/base-validator.mjs";
|
|
14
15
|
import { AnyValidator } from "./validators/any-validator.mjs";
|
|
15
16
|
import { ArrayValidator } from "./validators/array-validator.mjs";
|
|
@@ -65,6 +66,7 @@ import { instanceofRule } from "./rules/common/instanceof.mjs";
|
|
|
65
66
|
import { literalRule } from "./rules/common/literal.mjs";
|
|
66
67
|
import { arrayRule, booleanRule, floatRule, intRule, numberRule, objectRule, plainObjectRule, scalarRule, stringRule } from "./rules/common/type-rules.mjs";
|
|
67
68
|
import { unknownKeyRule } from "./rules/common/unknown-key.mjs";
|
|
69
|
+
import "./rules/index.mjs";
|
|
68
70
|
import { DateValidator } from "./validators/date-validator.mjs";
|
|
69
71
|
import { ObjectValidator } from "./validators/object-validator.mjs";
|
|
70
72
|
import { DiscriminatedUnionValidator } from "./validators/discriminated-union-validator.mjs";
|
|
@@ -81,11 +83,13 @@ import { ScalarValidator } from "./validators/scalar-validator.mjs";
|
|
|
81
83
|
import { StringValidator } from "./validators/string-validator.mjs";
|
|
82
84
|
import { TupleValidator } from "./validators/tuple-validator.mjs";
|
|
83
85
|
import { UnionValidator } from "./validators/union-validator.mjs";
|
|
86
|
+
import "./validators/index.mjs";
|
|
84
87
|
import { isDateValue } from "./helpers/date-helpers.mjs";
|
|
85
88
|
import { humanizeSize, resolveFileSize } from "./helpers/file.utils.mjs";
|
|
86
89
|
import { getFieldValue } from "./helpers/get-field-value.mjs";
|
|
87
90
|
import { setKeyPath } from "./helpers/path-helpers.mjs";
|
|
88
91
|
import { VALID_RULE, invalidRule, resolveTranslation } from "./helpers/validation-helpers.mjs";
|
|
92
|
+
import "./helpers/index.mjs";
|
|
89
93
|
import { flipArrayMutator, removeEmptyArrayElementsMutator, reverseArrayMutator, sortArrayMutator, uniqueArrayMutator } from "./mutators/array-mutators.mjs";
|
|
90
94
|
import { booleanCoerceMutator, formBooleanMutator } from "./mutators/boolean-mutators.mjs";
|
|
91
95
|
import { addDaysMutator, addHoursMutator, addMonthsMutator, addYearsMutator, dateMutator, toDateOnlyMutator, toEndOfDayMutator, toEndOfMonthMutator, toEndOfYearMutator, toFormatMutator, toISOStringMutator, toStartOfDayMutator, toStartOfMonthMutator, toStartOfYearMutator, toTimeOnlyMutator, toTimestampMutator, toUTCMutator } from "./mutators/date-mutators.mjs";
|
|
@@ -93,11 +97,14 @@ import { absMutator, booleanMutator, ceilMutator, floorMutator, numberMutator, n
|
|
|
93
97
|
import { jsonMutator, objectTrimMutator, stripUnknownMutator } from "./mutators/object-mutators.mjs";
|
|
94
98
|
import { stringMutator } from "./mutators/scalar-mutators.mjs";
|
|
95
99
|
import { alphaOnlyMutator, alphanumericOnlyMutator, appendMutator, base64DecodeMutator, base64EncodeMutator, camelCaseMutator, capitalizeMutator, htmlEscapeMutator, kebabCaseMutator, lowercaseMutator, ltrimMutator, maskMutator, padEndMutator, padStartMutator, pascalCaseMutator, prependMutator, removeNumbersMutator, removeSpecialCharactersMutator, repeatMutator, replaceAllMutator, replaceMutator, reverseMutator, rtrimMutator, safeHtmlMutator, slugMutator, snakeCaseMutator, stringifyMutator, stripTagsMutator, titleCaseMutator, trimMultipleWhitespaceMutator, trimMutator, truncateMutator, unescapeHtmlMutator, uppercaseMutator, urlDecodeMutator, urlEncodeMutator } from "./mutators/string-mutators.mjs";
|
|
100
|
+
import "./mutators/index.mjs";
|
|
96
101
|
import { SealConfig, TranslateAttributeCallback, TranslateRuleCallback, configureSeal, getSealConfig, resetSealConfig } from "./config.mjs";
|
|
97
102
|
import { ValidateOptions, ValidatorV, v } from "./factory/validators.mjs";
|
|
98
103
|
import { validate } from "./factory/validate.mjs";
|
|
104
|
+
import "./factory/index.mjs";
|
|
99
105
|
import { PluginContext, SealPlugin, getInstalledPlugins, hasPlugin, registerPlugin, unregisterPlugin } from "./plugins/plugin-system.mjs";
|
|
100
106
|
import { mapToStandardResult } from "./standard-schema/map-result.mjs";
|
|
107
|
+
import "./standard-schema/index.mjs";
|
|
101
108
|
export { AnyValidator, ArrayValidator, AttributeTranslation, BaseValidator, BooleanValidator, ComputedCallback, ComputedValidator, ContextualSchemaRule, ContextualizedMutator, ContextualizedTransformer, DateValidator, DiscriminatedUnionValidator, FileSizeOption, FloatValidator, Infer, InferInput, InferInputObjectShape, InferObjectShape, InferOutput, InferOutputObjectShape, InstanceOfValidator, IntValidator, IsInputOptionalKey, IsOptionalKey, IsOutputOptionalKey, JsonSchemaResult, JsonSchemaTarget, LazyValidator, LiteralValidator, ManagedCallback, ManagedValidator, Month, Mutator, MutatorContext, NumberValidator, NumericValidator, ObjectValidator, PluginContext, PrimitiveValidator, RecordValidator, RuleResult, RuleTranslation, ScalarValidator, Schema, SchemaContext, SchemaRule, SchemaRuleOptions, SealConfig, SealPlugin, SimpleTransformerCallback, StandardJSONSchemaV1, StandardSchemaV1, StringValidator, TransformerCallback, TranslateAttributeCallback, TranslateRuleCallback, TupleValidator, TypedValidationResult, UUIDVersion, UnionValidator, VALID_RULE, ValidateOptions, ValidatedOutput, ValidationAttributesList, ValidationResult, ValidatorV, WEEK_DAYS, WeekDay, WhenRuleOptions, absMutator, addDaysMutator, addHoursMutator, addMonthsMutator, addYearsMutator, afterFieldRule, afterTodayRule, ageRule, allowedValuesRule, alphaNumericRule, alphaOnlyMutator, alphaRule, alphanumericOnlyMutator, appendMutator, applyNullable, arrayRule, base64DecodeMutator, base64EncodeMutator, beforeFieldRule, beforeHourRule, beforeMinuteRule, beforeTodayRule, betweenAgeRule, betweenDatesRule, betweenDaysRule, betweenHoursRule, betweenLengthRule, betweenMinutesRule, betweenMonthsRule, betweenNumbersRule, betweenTimesRule, betweenYearsRule, birthdayRule, booleanCoerceMutator, booleanMutator, booleanRule, businessDayRule, camelCaseMutator, capitalizeMutator, ceilMutator, colorRule, configureSeal, containsRule, cuidRule, darkColorRule, dateMutator, dateRule, emailRule, endsWithRule, enumRule, equalRule, equalityConditionalMethodsApplied, equalsFieldRule, evenRule, flipArrayMutator, floatRule, floorMutator, forbiddenIfEmptyRule, forbiddenIfInRule, forbiddenIfNotEmptyRule, forbiddenIfNotInRule, forbiddenIfNotRule, forbiddenIfRule, forbiddenMethodsApplied, forbiddenRule, formBooleanMutator, fromHourRule, fromMinuteRule, fromTodayRule, futureRule, getFieldValue, getInstalledPlugins, getRuleOptions, getSealConfig, greaterThanRule, hasPlugin, hexColorRule, hslColorRule, htmlEscapeMutator, humanizeSize, inRule, instanceofRule, intRule, invalidRule, ip4Rule, ip6Rule, ipRule, isCreditCardRule, isDateValue, isIP, isIPv4, isIPv6, isNumericRule, jsonMutator, kebabCaseMutator, leapYearRule, lengthRule, lessThanRule, lightColorRule, literalRule, lowercaseMutator, ltrimMutator, mapToStandardResult, maskMutator, matchesRule, maxAgeRule, maxDateRule, maxDayRule, maxFileSizeRule, maxHeightRule, maxLengthRule, maxMonthRule, maxRule, maxWidthRule, maxWordsRule, maxYearRule, minAgeRule, minDateRule, minDayRule, minFileSizeRule, minHeightRule, minLengthRule, minMonthRule, minRule, minWidthRule, minWordsRule, minYearRule, moduloRule, monthRule, nanoidRule, negativeRule, notAllowedValuesRule, notContainsRule, notEqualsFieldRule, numberMutator, numberRule, numericMutator, objectRule, objectTrimMutator, oddRule, padEndMutator, padStartMutator, pascalCaseMutator, pastRule, patternRule, plainObjectRule, positiveRule, prependMutator, presentIfEmptyRule, presentIfInRule, presentIfNotEmptyRule, presentIfNotInRule, presentIfRule, presentMethodsApplied, presentRule, presentUnlessRule, presentWithAllRule, presentWithAnyRule, presentWithRule, presentWithoutAllRule, presentWithoutAnyRule, presentWithoutRule, quarterRule, registerPlugin, removeEmptyArrayElementsMutator, removeNumbersMutator, removeSpecialCharactersMutator, repeatMutator, replaceAllMutator, replaceMutator, requiredIfAllEmptyRule, requiredIfAllNotEmptyRule, requiredIfAnyEmptyRule, requiredIfAnyNotEmptyRule, requiredIfEmptyRule, requiredIfInRule, requiredIfNotEmptyRule, requiredIfNotInRule, requiredIfRule, requiredMethodsApplied, requiredRule, requiredUnlessRule, requiredWhenRule, requiredWithAllRule, requiredWithAnyRule, requiredWithRule, requiredWithoutAllRule, requiredWithoutAnyRule, requiredWithoutRule, resetSealConfig, resolveFileSize, resolveTranslation, reverseArrayMutator, reverseMutator, rgbColorRule, rgbaColorRule, roundMutator, roundNumberMutator, rtrimMutator, safeHtmlMutator, sameAsFieldDateRule, scalarRule, setKeyPath, slugMutator, snakeCaseMutator, sortArrayMutator, sortedArrayRule, startsWithRule, stringMutator, stringRule, stringifyMutator, stripTagsMutator, stripUnknownMutator, strongPasswordRule, titleCaseMutator, toDateOnlyMutator, toEndOfDayMutator, toEndOfMonthMutator, toEndOfYearMutator, toFixedMutator, toFormatMutator, toISOStringMutator, toStartOfDayMutator, toStartOfMonthMutator, toStartOfYearMutator, toTimeOnlyMutator, toTimestampMutator, toUTCMutator, todayRule, trimMultipleWhitespaceMutator, trimMutator, truncateMutator, ulidRule, unescapeHtmlMutator, unionRule, uniqueArrayMutator, uniqueArrayRule, unknownKeyRule, unregisterPlugin, uppercaseMutator, urlDecodeMutator, urlEncodeMutator, urlRule, uuidRule, v, validate, weekDayRule, weekdayRule, weekdaysRule, weekendRule, whenRule, withinDaysRule, withinFutureDaysRule, withinPastDaysRule, withoutWhitespaceRule, wordsRule, wrapNullableStrict, yearRule };
|
|
102
109
|
import "./validators/methods/equality-conditional-methods.mjs";
|
|
103
110
|
import "./validators/methods/forbidden-methods.mjs";
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
import { Mutator } from "../types/mutator-types.mjs";
|
|
2
|
-
|
|
2
|
+
import "../types/index.mjs";
|
|
3
3
|
//#region ../../packages/seal/src/mutators/array-mutators.d.ts
|
|
4
4
|
/** Reverse array order */
|
|
5
|
-
declare const flipArrayMutator: Mutator;
|
|
5
|
+
export declare const flipArrayMutator: Mutator;
|
|
6
6
|
/** Reverse array order (alias) */
|
|
7
|
-
declare const reverseArrayMutator: Mutator;
|
|
7
|
+
export declare const reverseArrayMutator: Mutator;
|
|
8
8
|
/** Sort array */
|
|
9
|
-
declare const sortArrayMutator: Mutator;
|
|
9
|
+
export declare const sortArrayMutator: Mutator;
|
|
10
10
|
/** Make array have only unique values */
|
|
11
|
-
declare const uniqueArrayMutator: Mutator;
|
|
11
|
+
export declare const uniqueArrayMutator: Mutator;
|
|
12
12
|
/** Remove empty elements from array */
|
|
13
|
-
declare const removeEmptyArrayElementsMutator: Mutator;
|
|
13
|
+
export declare const removeEmptyArrayElementsMutator: Mutator;
|
|
14
14
|
//#endregion
|
|
15
|
-
export { flipArrayMutator, removeEmptyArrayElementsMutator, reverseArrayMutator, sortArrayMutator, uniqueArrayMutator };
|
|
16
15
|
//# sourceMappingURL=array-mutators.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-mutators.d.mts","names":[],"sources":["../../../../../../../../packages/seal/src/mutators/array-mutators.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"array-mutators.d.mts","names":[],"sources":["../../../../../../../../packages/seal/src/mutators/array-mutators.ts"],"mappings":";;;;qBAKa,kBAAkB;;qBAKlB,qBAAqB;;qBAKrB,kBAAkB;;qBAyBlB,oBAAoB;;qBAKpB,iCAAiC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Mutator } from "../types/mutator-types.mjs";
|
|
2
|
-
|
|
2
|
+
import "../types/index.mjs";
|
|
3
3
|
//#region ../../packages/seal/src/mutators/boolean-mutators.d.ts
|
|
4
4
|
/**
|
|
5
5
|
* Coerce a query-string-shaped boolean into a real boolean.
|
|
@@ -8,7 +8,7 @@ import { Mutator } from "../types/mutator-types.mjs";
|
|
|
8
8
|
* Case-sensitive, no trimming. Any other value (`"yes"`, `"on"`, `"TRUE"`, `""`,
|
|
9
9
|
* `2`, `null`, etc.) passes through unchanged so the boolean type rule rejects it.
|
|
10
10
|
*/
|
|
11
|
-
declare const booleanCoerceMutator: Mutator;
|
|
11
|
+
export declare const booleanCoerceMutator: Mutator;
|
|
12
12
|
/**
|
|
13
13
|
* Parse form-shaped boolean values into a real boolean, ahead of the type
|
|
14
14
|
* rule.
|
|
@@ -24,7 +24,6 @@ declare const booleanCoerceMutator: Mutator;
|
|
|
24
24
|
* Named (not anonymous) so callers can detect whether it has already been
|
|
25
25
|
* added — see the idempotence check in `BooleanValidator`.
|
|
26
26
|
*/
|
|
27
|
-
declare const formBooleanMutator: Mutator;
|
|
27
|
+
export declare const formBooleanMutator: Mutator;
|
|
28
28
|
//#endregion
|
|
29
|
-
export { booleanCoerceMutator, formBooleanMutator };
|
|
30
29
|
//# sourceMappingURL=boolean-mutators.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boolean-mutators.d.mts","names":[],"sources":["../../../../../../../../packages/seal/src/mutators/boolean-mutators.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"boolean-mutators.d.mts","names":[],"sources":["../../../../../../../../packages/seal/src/mutators/boolean-mutators.ts"],"mappings":";;;;;;;;;;qBAWa,sBAAsB;;;;;;;;;;;;;;;;qBA2BtB,oBAAoB"}
|
|
@@ -1,43 +1,42 @@
|
|
|
1
1
|
import { Mutator } from "../types/mutator-types.mjs";
|
|
2
|
-
|
|
2
|
+
import "../types/index.mjs";
|
|
3
3
|
//#region ../../packages/seal/src/mutators/date-mutators.d.ts
|
|
4
4
|
/**
|
|
5
5
|
* Convert value to Date object
|
|
6
6
|
* Returns Invalid Date if value cannot be converted
|
|
7
7
|
*/
|
|
8
|
-
declare const dateMutator: Mutator;
|
|
8
|
+
export declare const dateMutator: Mutator;
|
|
9
9
|
/** Convert date to ISO string format */
|
|
10
|
-
declare const toISOStringMutator: Mutator;
|
|
10
|
+
export declare const toISOStringMutator: Mutator;
|
|
11
11
|
/** Convert date to Unix timestamp (milliseconds) */
|
|
12
|
-
declare const toTimestampMutator: Mutator;
|
|
12
|
+
export declare const toTimestampMutator: Mutator;
|
|
13
13
|
/** Convert date to start of day (00:00:00) */
|
|
14
|
-
declare const toStartOfDayMutator: Mutator;
|
|
14
|
+
export declare const toStartOfDayMutator: Mutator;
|
|
15
15
|
/** Convert date to end of day (23:59:59.999) */
|
|
16
|
-
declare const toEndOfDayMutator: Mutator;
|
|
16
|
+
export declare const toEndOfDayMutator: Mutator;
|
|
17
17
|
/** Add or subtract days from date */
|
|
18
|
-
declare const addDaysMutator: Mutator;
|
|
18
|
+
export declare const addDaysMutator: Mutator;
|
|
19
19
|
/** Add or subtract months from date */
|
|
20
|
-
declare const addMonthsMutator: Mutator;
|
|
20
|
+
export declare const addMonthsMutator: Mutator;
|
|
21
21
|
/** Add or subtract years from date */
|
|
22
|
-
declare const addYearsMutator: Mutator;
|
|
22
|
+
export declare const addYearsMutator: Mutator;
|
|
23
23
|
/** Add or subtract hours from date */
|
|
24
|
-
declare const addHoursMutator: Mutator;
|
|
24
|
+
export declare const addHoursMutator: Mutator;
|
|
25
25
|
/** Convert date to UTC */
|
|
26
|
-
declare const toUTCMutator: Mutator;
|
|
26
|
+
export declare const toUTCMutator: Mutator;
|
|
27
27
|
/** Convert date to specific format using dayjs */
|
|
28
|
-
declare const toFormatMutator: Mutator;
|
|
28
|
+
export declare const toFormatMutator: Mutator;
|
|
29
29
|
/** Convert to date only (remove time) */
|
|
30
|
-
declare const toDateOnlyMutator: Mutator;
|
|
30
|
+
export declare const toDateOnlyMutator: Mutator;
|
|
31
31
|
/** Convert to time only (HH:MM:SS) */
|
|
32
|
-
declare const toTimeOnlyMutator: Mutator;
|
|
32
|
+
export declare const toTimeOnlyMutator: Mutator;
|
|
33
33
|
/** Set to start of month */
|
|
34
|
-
declare const toStartOfMonthMutator: Mutator;
|
|
34
|
+
export declare const toStartOfMonthMutator: Mutator;
|
|
35
35
|
/** Set to end of month */
|
|
36
|
-
declare const toEndOfMonthMutator: Mutator;
|
|
36
|
+
export declare const toEndOfMonthMutator: Mutator;
|
|
37
37
|
/** Set to start of year */
|
|
38
|
-
declare const toStartOfYearMutator: Mutator;
|
|
38
|
+
export declare const toStartOfYearMutator: Mutator;
|
|
39
39
|
/** Set to end of year */
|
|
40
|
-
declare const toEndOfYearMutator: Mutator;
|
|
40
|
+
export declare const toEndOfYearMutator: Mutator;
|
|
41
41
|
//#endregion
|
|
42
|
-
export { addDaysMutator, addHoursMutator, addMonthsMutator, addYearsMutator, dateMutator, toDateOnlyMutator, toEndOfDayMutator, toEndOfMonthMutator, toEndOfYearMutator, toFormatMutator, toISOStringMutator, toStartOfDayMutator, toStartOfMonthMutator, toStartOfYearMutator, toTimeOnlyMutator, toTimestampMutator, toUTCMutator };
|
|
43
42
|
//# sourceMappingURL=date-mutators.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-mutators.d.mts","names":[],"sources":["../../../../../../../../packages/seal/src/mutators/date-mutators.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"date-mutators.d.mts","names":[],"sources":["../../../../../../../../packages/seal/src/mutators/date-mutators.ts"],"mappings":";;;;;;;qBAOa,aAAa;;qBAoBb,oBAAoB;;qBAMpB,oBAAoB;;qBAMpB,qBAAqB;;qBAOrB,mBAAmB;;qBAOnB,gBAAgB;;qBAQhB,kBAAkB;;qBAQlB,iBAAiB;;qBAQjB,iBAAiB;;qBAQjB,cAAc;;qBAMd,iBAAiB;;qBAMjB,mBAAmB;;qBAMnB,mBAAmB;;qBAMnB,uBAAuB;;qBAQvB,qBAAqB;;qBASrB,sBAAsB;;qBAStB,oBAAoB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { flipArrayMutator, removeEmptyArrayElementsMutator, reverseArrayMutator, sortArrayMutator, uniqueArrayMutator } from "./array-mutators.mjs";
|
|
2
|
+
import { booleanCoerceMutator, formBooleanMutator } from "./boolean-mutators.mjs";
|
|
3
|
+
import { addDaysMutator, addHoursMutator, addMonthsMutator, addYearsMutator, dateMutator, toDateOnlyMutator, toEndOfDayMutator, toEndOfMonthMutator, toEndOfYearMutator, toFormatMutator, toISOStringMutator, toStartOfDayMutator, toStartOfMonthMutator, toStartOfYearMutator, toTimeOnlyMutator, toTimestampMutator, toUTCMutator } from "./date-mutators.mjs";
|
|
4
|
+
import { absMutator, booleanMutator, ceilMutator, floorMutator, numberMutator, numericMutator, roundMutator, roundNumberMutator, toFixedMutator } from "./number-mutators.mjs";
|
|
5
|
+
import { jsonMutator, objectTrimMutator, stripUnknownMutator } from "./object-mutators.mjs";
|
|
6
|
+
import { stringMutator } from "./scalar-mutators.mjs";
|
|
7
|
+
import { alphaOnlyMutator, alphanumericOnlyMutator, appendMutator, base64DecodeMutator, base64EncodeMutator, camelCaseMutator, capitalizeMutator, htmlEscapeMutator, kebabCaseMutator, lowercaseMutator, ltrimMutator, maskMutator, padEndMutator, padStartMutator, pascalCaseMutator, prependMutator, removeNumbersMutator, removeSpecialCharactersMutator, repeatMutator, replaceAllMutator, replaceMutator, reverseMutator, rtrimMutator, safeHtmlMutator, slugMutator, snakeCaseMutator, stringifyMutator, stripTagsMutator, titleCaseMutator, trimMultipleWhitespaceMutator, trimMutator, truncateMutator, unescapeHtmlMutator, uppercaseMutator, urlDecodeMutator, urlEncodeMutator } from "./string-mutators.mjs";
|
|
8
|
+
export { absMutator, addDaysMutator, addHoursMutator, addMonthsMutator, addYearsMutator, alphaOnlyMutator, alphanumericOnlyMutator, appendMutator, base64DecodeMutator, base64EncodeMutator, booleanCoerceMutator, booleanMutator, camelCaseMutator, capitalizeMutator, ceilMutator, dateMutator, flipArrayMutator, floorMutator, formBooleanMutator, htmlEscapeMutator, jsonMutator, kebabCaseMutator, lowercaseMutator, ltrimMutator, maskMutator, numberMutator, numericMutator, objectTrimMutator, padEndMutator, padStartMutator, pascalCaseMutator, prependMutator, removeEmptyArrayElementsMutator, removeNumbersMutator, removeSpecialCharactersMutator, repeatMutator, replaceAllMutator, replaceMutator, reverseArrayMutator, reverseMutator, roundMutator, roundNumberMutator, rtrimMutator, safeHtmlMutator, slugMutator, snakeCaseMutator, sortArrayMutator, stringMutator, stringifyMutator, stripTagsMutator, stripUnknownMutator, titleCaseMutator, toDateOnlyMutator, toEndOfDayMutator, toEndOfMonthMutator, toEndOfYearMutator, toFixedMutator, toFormatMutator, toISOStringMutator, toStartOfDayMutator, toStartOfMonthMutator, toStartOfYearMutator, toTimeOnlyMutator, toTimestampMutator, toUTCMutator, trimMultipleWhitespaceMutator, trimMutator, truncateMutator, unescapeHtmlMutator, uniqueArrayMutator, uppercaseMutator, urlDecodeMutator, urlEncodeMutator };
|
package/esm/mutators/index.mjs
CHANGED
|
@@ -6,4 +6,4 @@ import { jsonMutator, objectTrimMutator, stripUnknownMutator } from "./object-mu
|
|
|
6
6
|
import { stringMutator } from "./scalar-mutators.mjs";
|
|
7
7
|
import { alphaOnlyMutator, alphanumericOnlyMutator, appendMutator, base64DecodeMutator, base64EncodeMutator, camelCaseMutator, capitalizeMutator, htmlEscapeMutator, kebabCaseMutator, lowercaseMutator, ltrimMutator, maskMutator, padEndMutator, padStartMutator, pascalCaseMutator, prependMutator, removeNumbersMutator, removeSpecialCharactersMutator, repeatMutator, replaceAllMutator, replaceMutator, reverseMutator, rtrimMutator, safeHtmlMutator, slugMutator, snakeCaseMutator, stringifyMutator, stripTagsMutator, titleCaseMutator, trimMultipleWhitespaceMutator, trimMutator, truncateMutator, unescapeHtmlMutator, uppercaseMutator, urlDecodeMutator, urlEncodeMutator } from "./string-mutators.mjs";
|
|
8
8
|
|
|
9
|
-
export {
|
|
9
|
+
export { absMutator, addDaysMutator, addHoursMutator, addMonthsMutator, addYearsMutator, alphaOnlyMutator, alphanumericOnlyMutator, appendMutator, base64DecodeMutator, base64EncodeMutator, booleanCoerceMutator, booleanMutator, camelCaseMutator, capitalizeMutator, ceilMutator, dateMutator, flipArrayMutator, floorMutator, formBooleanMutator, htmlEscapeMutator, jsonMutator, kebabCaseMutator, lowercaseMutator, ltrimMutator, maskMutator, numberMutator, numericMutator, objectTrimMutator, padEndMutator, padStartMutator, pascalCaseMutator, prependMutator, removeEmptyArrayElementsMutator, removeNumbersMutator, removeSpecialCharactersMutator, repeatMutator, replaceAllMutator, replaceMutator, reverseArrayMutator, reverseMutator, roundMutator, roundNumberMutator, rtrimMutator, safeHtmlMutator, slugMutator, snakeCaseMutator, sortArrayMutator, stringMutator, stringifyMutator, stripTagsMutator, stripUnknownMutator, titleCaseMutator, toDateOnlyMutator, toEndOfDayMutator, toEndOfMonthMutator, toEndOfYearMutator, toFixedMutator, toFormatMutator, toISOStringMutator, toStartOfDayMutator, toStartOfMonthMutator, toStartOfYearMutator, toTimeOnlyMutator, toTimestampMutator, toUTCMutator, trimMultipleWhitespaceMutator, trimMutator, truncateMutator, unescapeHtmlMutator, uniqueArrayMutator, uppercaseMutator, urlDecodeMutator, urlEncodeMutator };
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import { Mutator } from "../types/mutator-types.mjs";
|
|
2
|
-
|
|
2
|
+
import "../types/index.mjs";
|
|
3
3
|
//#region ../../packages/seal/src/mutators/number-mutators.d.ts
|
|
4
4
|
/** Convert value to number */
|
|
5
|
-
declare const numberMutator: Mutator;
|
|
5
|
+
export declare const numberMutator: Mutator;
|
|
6
6
|
/** Round number to specified decimals */
|
|
7
|
-
declare const roundNumberMutator: Mutator;
|
|
7
|
+
export declare const roundNumberMutator: Mutator;
|
|
8
8
|
/** Convert to boolean */
|
|
9
|
-
declare const booleanMutator: Mutator;
|
|
10
|
-
declare const numericMutator: Mutator;
|
|
9
|
+
export declare const booleanMutator: Mutator;
|
|
10
|
+
export declare const numericMutator: Mutator;
|
|
11
11
|
/** Absolute value mutator */
|
|
12
|
-
declare const absMutator: Mutator;
|
|
12
|
+
export declare const absMutator: Mutator;
|
|
13
13
|
/** Ceil mutator */
|
|
14
|
-
declare const ceilMutator: Mutator;
|
|
14
|
+
export declare const ceilMutator: Mutator;
|
|
15
15
|
/** Floor mutator */
|
|
16
|
-
declare const floorMutator: Mutator;
|
|
16
|
+
export declare const floorMutator: Mutator;
|
|
17
17
|
/**
|
|
18
18
|
* Round mutator
|
|
19
19
|
* Supports decimal precision via options.decimals
|
|
20
20
|
*/
|
|
21
|
-
declare const roundMutator: Mutator;
|
|
21
|
+
export declare const roundMutator: Mutator;
|
|
22
22
|
/**
|
|
23
23
|
* To fixed mutator — rounds to a fixed number of decimal places, as a number.
|
|
24
24
|
*
|
|
@@ -28,7 +28,6 @@ declare const roundMutator: Mutator;
|
|
|
28
28
|
* lives. For the fixed-point string form, format at the edge instead of asking
|
|
29
29
|
* a number schema to output a string.
|
|
30
30
|
*/
|
|
31
|
-
declare const toFixedMutator: Mutator;
|
|
31
|
+
export declare const toFixedMutator: Mutator;
|
|
32
32
|
//#endregion
|
|
33
|
-
export { absMutator, booleanMutator, ceilMutator, floorMutator, numberMutator, numericMutator, roundMutator, roundNumberMutator, toFixedMutator };
|
|
34
33
|
//# sourceMappingURL=number-mutators.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number-mutators.d.mts","names":[],"sources":["../../../../../../../../packages/seal/src/mutators/number-mutators.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"number-mutators.d.mts","names":[],"sources":["../../../../../../../../packages/seal/src/mutators/number-mutators.ts"],"mappings":";;;;qBAKa,eAAe;;qBAMf,oBAAoB;;qBAKpB,gBAAgB;qBAMhB,gBAAgB;;qBAMhB,YAAY;;qBAKZ,aAAa;;qBAKb,cAAc;;;;;qBAQd,cAAc;;;;;;;;;;qBAmBd,gBAAgB"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { Mutator } from "../types/mutator-types.mjs";
|
|
2
|
-
|
|
2
|
+
import "../types/index.mjs";
|
|
3
3
|
//#region ../../packages/seal/src/mutators/object-mutators.d.ts
|
|
4
4
|
/** Strip unknown keys from object */
|
|
5
|
-
declare const stripUnknownMutator: Mutator;
|
|
5
|
+
export declare const stripUnknownMutator: Mutator;
|
|
6
6
|
/** Trim all string values in object */
|
|
7
|
-
declare const objectTrimMutator: Mutator;
|
|
7
|
+
export declare const objectTrimMutator: Mutator;
|
|
8
8
|
/** Parse JSON string */
|
|
9
|
-
declare const jsonMutator: Mutator;
|
|
9
|
+
export declare const jsonMutator: Mutator;
|
|
10
10
|
//#endregion
|
|
11
|
-
export { jsonMutator, objectTrimMutator, stripUnknownMutator };
|
|
12
11
|
//# sourceMappingURL=object-mutators.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object-mutators.d.mts","names":[],"sources":["../../../../../../../../packages/seal/src/mutators/object-mutators.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"object-mutators.d.mts","names":[],"sources":["../../../../../../../../packages/seal/src/mutators/object-mutators.ts"],"mappings":";;;;qBAKa,qBAAqB;;qBAkBrB,mBAAmB;;qBA8BnB,aAAa"}
|
|
@@ -16,10 +16,11 @@ const objectTrimMutator = async (value, context) => {
|
|
|
16
16
|
const recursive = context?.options.recursive ?? false;
|
|
17
17
|
for (const key in value) {
|
|
18
18
|
const item = value[key];
|
|
19
|
-
if (recursive)
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
if (recursive) {
|
|
20
|
+
if (Array.isArray(item)) result[key] = await Promise.all(item.map(async (i) => typeof i === "string" ? trim(i) : await objectTrimMutator(i, context)));
|
|
21
|
+
else if (isPlainObject(item)) result[key] = await objectTrimMutator(item, context);
|
|
22
|
+
else result[key] = typeof item === "string" ? trim(item) : item;
|
|
23
|
+
} else result[key] = typeof item === "string" ? trim(item) : item;
|
|
23
24
|
}
|
|
24
25
|
return result;
|
|
25
26
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object-mutators.mjs","names":[],"sources":["../../../../../../../../packages/seal/src/mutators/object-mutators.ts"],"sourcesContent":["import { trim } from \"@mongez/reinforcements\";\nimport { isPlainObject } from \"@mongez/supportive-is\";\nimport type { Mutator } from \"../types\";\n\n/** Strip unknown keys from object */\nexport const stripUnknownMutator: Mutator = async (value, context) => {\n const allowedKeys = [\n ...(context?.ctx.schema ? Object.keys(context.ctx.schema) : []),\n ...(context?.options.allowedKeys ?? []),\n ];\n\n const result: Record<string, any> = {};\n\n for (const key in value) {\n if (allowedKeys.includes(key)) {\n result[key] = value[key];\n }\n }\n\n return result;\n};\n\n/** Trim all string values in object */\nexport const objectTrimMutator: Mutator = async (value, context) => {\n if (!isPlainObject(value)) return value;\n\n const result: Record<string, any> = {};\n const recursive = context?.options.recursive ?? false;\n\n for (const key in value) {\n const item = value[key];\n\n if (recursive) {\n if (Array.isArray(item)) {\n result[key] = await Promise.all(\n item.map(async (i: any) =>\n typeof i === \"string\" ? trim(i) : await objectTrimMutator(i, context),\n ),\n );\n } else if (isPlainObject(item)) {\n result[key] = await objectTrimMutator(item, context);\n } else {\n result[key] = typeof item === \"string\" ? trim(item) : item;\n }\n } else {\n result[key] = typeof item === \"string\" ? trim(item) : item;\n }\n }\n\n return result;\n};\n\n/** Parse JSON string */\nexport const jsonMutator: Mutator = async (value) => {\n try {\n return JSON.parse(value);\n } catch {\n return value;\n }\n};\n"],"mappings":";;;;;AAKA,MAAa,sBAA+B,OAAO,OAAO,YAAY;CACpE,MAAM,cAAc,CAClB,GAAI,SAAS,IAAI,SAAS,OAAO,KAAK,QAAQ,IAAI,MAAM,IAAI,CAAC,GAC7D,GAAI,SAAS,QAAQ,eAAe,CAAC,CACvC;CAEA,MAAM,SAA8B,CAAC;CAErC,KAAK,MAAM,OAAO,OAChB,IAAI,YAAY,SAAS,GAAG,GAC1B,OAAO,OAAO,MAAM;CAIxB,OAAO;AACT;;AAGA,MAAa,oBAA6B,OAAO,OAAO,YAAY;CAClE,IAAI,CAAC,cAAc,KAAK,GAAG,OAAO;CAElC,MAAM,SAA8B,CAAC;CACrC,MAAM,YAAY,SAAS,QAAQ,aAAa;CAEhD,KAAK,MAAM,OAAO,OAAO;EACvB,MAAM,OAAO,MAAM;EAEnB,IAAI,
|
|
1
|
+
{"version":3,"file":"object-mutators.mjs","names":[],"sources":["../../../../../../../../packages/seal/src/mutators/object-mutators.ts"],"sourcesContent":["import { trim } from \"@mongez/reinforcements\";\nimport { isPlainObject } from \"@mongez/supportive-is\";\nimport type { Mutator } from \"../types\";\n\n/** Strip unknown keys from object */\nexport const stripUnknownMutator: Mutator = async (value, context) => {\n const allowedKeys = [\n ...(context?.ctx.schema ? Object.keys(context.ctx.schema) : []),\n ...(context?.options.allowedKeys ?? []),\n ];\n\n const result: Record<string, any> = {};\n\n for (const key in value) {\n if (allowedKeys.includes(key)) {\n result[key] = value[key];\n }\n }\n\n return result;\n};\n\n/** Trim all string values in object */\nexport const objectTrimMutator: Mutator = async (value, context) => {\n if (!isPlainObject(value)) return value;\n\n const result: Record<string, any> = {};\n const recursive = context?.options.recursive ?? false;\n\n for (const key in value) {\n const item = value[key];\n\n if (recursive) {\n if (Array.isArray(item)) {\n result[key] = await Promise.all(\n item.map(async (i: any) =>\n typeof i === \"string\" ? trim(i) : await objectTrimMutator(i, context),\n ),\n );\n } else if (isPlainObject(item)) {\n result[key] = await objectTrimMutator(item, context);\n } else {\n result[key] = typeof item === \"string\" ? trim(item) : item;\n }\n } else {\n result[key] = typeof item === \"string\" ? trim(item) : item;\n }\n }\n\n return result;\n};\n\n/** Parse JSON string */\nexport const jsonMutator: Mutator = async (value) => {\n try {\n return JSON.parse(value);\n } catch {\n return value;\n }\n};\n"],"mappings":";;;;;AAKA,MAAa,sBAA+B,OAAO,OAAO,YAAY;CACpE,MAAM,cAAc,CAClB,GAAI,SAAS,IAAI,SAAS,OAAO,KAAK,QAAQ,IAAI,MAAM,IAAI,CAAC,GAC7D,GAAI,SAAS,QAAQ,eAAe,CAAC,CACvC;CAEA,MAAM,SAA8B,CAAC;CAErC,KAAK,MAAM,OAAO,OAChB,IAAI,YAAY,SAAS,GAAG,GAC1B,OAAO,OAAO,MAAM;CAIxB,OAAO;AACT;;AAGA,MAAa,oBAA6B,OAAO,OAAO,YAAY;CAClE,IAAI,CAAC,cAAc,KAAK,GAAG,OAAO;CAElC,MAAM,SAA8B,CAAC;CACrC,MAAM,YAAY,SAAS,QAAQ,aAAa;CAEhD,KAAK,MAAM,OAAO,OAAO;EACvB,MAAM,OAAO,MAAM;EAEnB,IAAI,WAAW;GACb,IAAI,MAAM,QAAQ,IAAI,GACpB,OAAO,OAAO,MAAM,QAAQ,IAC1B,KAAK,IAAI,OAAO,MACd,OAAO,MAAM,WAAW,KAAK,CAAC,IAAI,MAAM,kBAAkB,GAAG,OAAO,CACtE,CACF;QACK,IAAI,cAAc,IAAI,GAC3B,OAAO,OAAO,MAAM,kBAAkB,MAAM,OAAO;QAEnD,OAAO,OAAO,OAAO,SAAS,WAAW,KAAK,IAAI,IAAI;EAE1D,OACE,OAAO,OAAO,OAAO,SAAS,WAAW,KAAK,IAAI,IAAI;CAE1D;CAEA,OAAO;AACT;;AAGA,MAAa,cAAuB,OAAO,UAAU;CACnD,IAAI;EACF,OAAO,KAAK,MAAM,KAAK;CACzB,QAAQ;EACN,OAAO;CACT;AACF"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Mutator } from "../types/mutator-types.mjs";
|
|
2
|
-
|
|
2
|
+
import "../types/index.mjs";
|
|
3
3
|
//#region ../../packages/seal/src/mutators/scalar-mutators.d.ts
|
|
4
|
-
declare const stringMutator: Mutator;
|
|
4
|
+
export declare const stringMutator: Mutator;
|
|
5
5
|
//#endregion
|
|
6
|
-
export { stringMutator };
|
|
7
6
|
//# sourceMappingURL=scalar-mutators.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scalar-mutators.d.mts","names":[],"sources":["../../../../../../../../packages/seal/src/mutators/scalar-mutators.ts"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"scalar-mutators.d.mts","names":[],"sources":["../../../../../../../../packages/seal/src/mutators/scalar-mutators.ts"],"mappings":";;;qBAEa,eAAe"}
|