@warlock.js/seal 3.0.20 → 3.0.22
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/factory/validators.d.ts +7 -5
- package/cjs/factory/validators.d.ts.map +1 -1
- package/cjs/factory/validators.js +5 -8
- package/cjs/factory/validators.js.map +1 -1
- package/cjs/index.js +1 -1
- package/cjs/rules/conditional/forbidden-if-rules.d.ts +54 -0
- package/cjs/rules/conditional/forbidden-if-rules.d.ts.map +1 -0
- package/cjs/rules/conditional/forbidden-if-rules.js +112 -0
- package/cjs/rules/conditional/forbidden-if-rules.js.map +1 -0
- package/cjs/rules/conditional/index.d.ts +1 -0
- package/cjs/rules/conditional/index.d.ts.map +1 -1
- package/cjs/validators/base-validator.d.ts +57 -0
- package/cjs/validators/base-validator.d.ts.map +1 -1
- package/cjs/validators/base-validator.js +140 -3
- package/cjs/validators/base-validator.js.map +1 -1
- package/cjs/validators/index.d.ts +2 -0
- package/cjs/validators/index.d.ts.map +1 -1
- package/cjs/validators/number-validator.d.ts.map +1 -1
- package/cjs/validators/number-validator.js +1 -2
- package/cjs/validators/number-validator.js.map +1 -1
- package/cjs/validators/object-validator.d.ts +1 -1
- package/cjs/validators/object-validator.d.ts.map +1 -1
- package/cjs/validators/object-validator.js +6 -2
- package/cjs/validators/object-validator.js.map +1 -1
- package/cjs/validators/record-validator.d.ts +33 -0
- package/cjs/validators/record-validator.d.ts.map +1 -0
- package/cjs/validators/record-validator.js +70 -0
- package/cjs/validators/record-validator.js.map +1 -0
- package/cjs/validators/scalar-validator.d.ts +4 -0
- package/cjs/validators/scalar-validator.d.ts.map +1 -1
- package/cjs/validators/scalar-validator.js +8 -0
- package/cjs/validators/scalar-validator.js.map +1 -1
- package/cjs/validators/tuple-validator.d.ts +34 -0
- package/cjs/validators/tuple-validator.d.ts.map +1 -0
- package/cjs/validators/tuple-validator.js +79 -0
- package/cjs/validators/tuple-validator.js.map +1 -0
- package/esm/factory/validators.d.ts +7 -5
- package/esm/factory/validators.d.ts.map +1 -1
- package/esm/factory/validators.js +5 -8
- package/esm/factory/validators.js.map +1 -1
- package/esm/index.js +1 -1
- package/esm/rules/conditional/forbidden-if-rules.d.ts +54 -0
- package/esm/rules/conditional/forbidden-if-rules.d.ts.map +1 -0
- package/esm/rules/conditional/forbidden-if-rules.js +112 -0
- package/esm/rules/conditional/forbidden-if-rules.js.map +1 -0
- package/esm/rules/conditional/index.d.ts +1 -0
- package/esm/rules/conditional/index.d.ts.map +1 -1
- package/esm/validators/base-validator.d.ts +57 -0
- package/esm/validators/base-validator.d.ts.map +1 -1
- package/esm/validators/base-validator.js +140 -3
- package/esm/validators/base-validator.js.map +1 -1
- package/esm/validators/index.d.ts +2 -0
- package/esm/validators/index.d.ts.map +1 -1
- package/esm/validators/number-validator.d.ts.map +1 -1
- package/esm/validators/number-validator.js +1 -2
- package/esm/validators/number-validator.js.map +1 -1
- package/esm/validators/object-validator.d.ts +1 -1
- package/esm/validators/object-validator.d.ts.map +1 -1
- package/esm/validators/object-validator.js +6 -2
- package/esm/validators/object-validator.js.map +1 -1
- package/esm/validators/record-validator.d.ts +33 -0
- package/esm/validators/record-validator.d.ts.map +1 -0
- package/esm/validators/record-validator.js +70 -0
- package/esm/validators/record-validator.js.map +1 -0
- package/esm/validators/scalar-validator.d.ts +4 -0
- package/esm/validators/scalar-validator.d.ts.map +1 -1
- package/esm/validators/scalar-validator.js +8 -0
- package/esm/validators/scalar-validator.js.map +1 -1
- package/esm/validators/tuple-validator.d.ts +34 -0
- package/esm/validators/tuple-validator.d.ts.map +1 -0
- package/esm/validators/tuple-validator.js +79 -0
- package/esm/validators/tuple-validator.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scalar-validator.js","sources":["../../src/validators/scalar-validator.ts"],"sourcesContent":[null],"names":["BaseValidator","scalarRule","numberMutator","acceptedRule","acceptedIfRule","acceptedUnlessRule","acceptedIfRequiredRule","acceptedIfPresentRule","acceptedWithoutRule","declinedRule","declinedIfRule","declinedUnlessRule","declinedIfRequiredRule","declinedIfPresentRule","declinedWithoutRule","enumRule","inRule","allowedValuesRule","notAllowedValuesRule"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scalar-validator.js","sources":["../../src/validators/scalar-validator.ts"],"sourcesContent":[null],"names":["BaseValidator","scalarRule","numberMutator","acceptedRule","acceptedIfRule","acceptedUnlessRule","acceptedIfRequiredRule","acceptedIfPresentRule","acceptedWithoutRule","declinedRule","declinedIfRule","declinedUnlessRule","declinedIfRequiredRule","declinedIfPresentRule","declinedWithoutRule","enumRule","inRule","allowedValuesRule","notAllowedValuesRule"],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { SchemaContext, ValidationResult } from "../types";
|
|
2
|
+
import { BaseValidator } from "./base-validator";
|
|
3
|
+
/**
|
|
4
|
+
* Tuple validator class - validates fixed-length arrays with position-specific types
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* // RGB color tuple
|
|
9
|
+
* v.tuple([v.number(), v.number(), v.number()])
|
|
10
|
+
* // Valid: [255, 128, 0]
|
|
11
|
+
* // Invalid: [255, 128] (too short)
|
|
12
|
+
*
|
|
13
|
+
* // Mixed types
|
|
14
|
+
* v.tuple([v.string(), v.int(), v.boolean()])
|
|
15
|
+
* // Valid: ["John", 25, true]
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare class TupleValidator extends BaseValidator {
|
|
19
|
+
validators: BaseValidator[];
|
|
20
|
+
constructor(validators: BaseValidator[], errorMessage?: string);
|
|
21
|
+
/**
|
|
22
|
+
* Check if value is an array type
|
|
23
|
+
*/
|
|
24
|
+
matchesType(value: any): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Clone the validator
|
|
27
|
+
*/
|
|
28
|
+
clone(): this;
|
|
29
|
+
/**
|
|
30
|
+
* Validate tuple - check length then validate each position
|
|
31
|
+
*/
|
|
32
|
+
validate(data: any, context: SchemaContext): Promise<ValidationResult>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=tuple-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tuple-validator.d.ts","sourceRoot":"","sources":["../../src/validators/tuple-validator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,cAAe,SAAQ,aAAa;IAEtC,UAAU,EAAE,aAAa,EAAE;gBAA3B,UAAU,EAAE,aAAa,EAAE,EAClC,YAAY,CAAC,EAAE,MAAM;IAMvB;;OAEG;IACI,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO;IAIvC;;OAEG;IACa,KAAK,IAAI,IAAI;IAM7B;;OAEG;IACU,QAAQ,CACnB,IAAI,EAAE,GAAG,EACT,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,gBAAgB,CAAC;CAkD7B"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
'use strict';require('@mongez/reinforcements');var pathHelpers=require('../helpers/path-helpers.js');require('@mongez/supportive-is'),require('net');var typeRules=require('../rules/common/type-rules.js'),baseValidator=require('./base-validator.js');/**
|
|
2
|
+
* Tuple validator class - validates fixed-length arrays with position-specific types
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* // RGB color tuple
|
|
7
|
+
* v.tuple([v.number(), v.number(), v.number()])
|
|
8
|
+
* // Valid: [255, 128, 0]
|
|
9
|
+
* // Invalid: [255, 128] (too short)
|
|
10
|
+
*
|
|
11
|
+
* // Mixed types
|
|
12
|
+
* v.tuple([v.string(), v.int(), v.boolean()])
|
|
13
|
+
* // Valid: ["John", 25, true]
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
class TupleValidator extends baseValidator.BaseValidator {
|
|
17
|
+
validators;
|
|
18
|
+
constructor(validators, errorMessage) {
|
|
19
|
+
super();
|
|
20
|
+
this.validators = validators;
|
|
21
|
+
this.addRule(typeRules.arrayRule, errorMessage);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Check if value is an array type
|
|
25
|
+
*/
|
|
26
|
+
matchesType(value) {
|
|
27
|
+
return Array.isArray(value);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Clone the validator
|
|
31
|
+
*/
|
|
32
|
+
clone() {
|
|
33
|
+
const cloned = super.clone();
|
|
34
|
+
cloned.validators = this.validators.map(v => v.clone());
|
|
35
|
+
return cloned;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Validate tuple - check length then validate each position
|
|
39
|
+
*/
|
|
40
|
+
async validate(data, context) {
|
|
41
|
+
const mutatedData = (await this.mutate(data, context)) || [];
|
|
42
|
+
const result = await super.validate(data, context);
|
|
43
|
+
if (result.isValid === false)
|
|
44
|
+
return result;
|
|
45
|
+
const errors = [];
|
|
46
|
+
// Tuple-specific: length validation
|
|
47
|
+
if (mutatedData.length !== this.validators.length) {
|
|
48
|
+
errors.push({
|
|
49
|
+
type: "tuple",
|
|
50
|
+
input: context.key || "value",
|
|
51
|
+
error: `Expected exactly ${this.validators.length} items, but got ${mutatedData.length}`,
|
|
52
|
+
});
|
|
53
|
+
return { isValid: false, errors, data: mutatedData };
|
|
54
|
+
}
|
|
55
|
+
// Validate each position with its specific validator in parallel
|
|
56
|
+
const validationPromises = this.validators.map(async (validator, index) => {
|
|
57
|
+
const childContext = {
|
|
58
|
+
...context,
|
|
59
|
+
parent: mutatedData,
|
|
60
|
+
value: mutatedData[index],
|
|
61
|
+
key: index.toString(),
|
|
62
|
+
path: pathHelpers.setKeyPath(context.path, index.toString()),
|
|
63
|
+
};
|
|
64
|
+
const childResult = await validator.validate(mutatedData[index], childContext);
|
|
65
|
+
// Update mutated data with validated result
|
|
66
|
+
mutatedData[index] = childResult.data;
|
|
67
|
+
// Collect errors from this element
|
|
68
|
+
if (childResult.isValid === false) {
|
|
69
|
+
errors.push(...childResult.errors);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
await Promise.all(validationPromises);
|
|
73
|
+
return {
|
|
74
|
+
isValid: errors.length === 0,
|
|
75
|
+
errors,
|
|
76
|
+
data: await this.startTransformationPipeline(mutatedData, context),
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
}exports.TupleValidator=TupleValidator;//# sourceMappingURL=tuple-validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tuple-validator.js","sources":["../../src/validators/tuple-validator.ts"],"sourcesContent":[null],"names":["BaseValidator","arrayRule","setKeyPath"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Schema, ValidationResult } from "../types";
|
|
2
2
|
import type { BaseValidator } from "../validators";
|
|
3
|
-
import { AnyValidator, ArrayValidator, BooleanValidator, DateValidator, FloatValidator, IntValidator, NumberValidator, ObjectValidator, ScalarValidator, StringValidator, UnionValidator } from "../validators";
|
|
3
|
+
import { AnyValidator, ArrayValidator, BooleanValidator, DateValidator, FloatValidator, IntValidator, NumberValidator, ObjectValidator, RecordValidator, ScalarValidator, StringValidator, TupleValidator, UnionValidator } from "../validators";
|
|
4
4
|
/**
|
|
5
5
|
* Seal factory object - creates instances of validators
|
|
6
6
|
*
|
|
@@ -12,10 +12,15 @@ export interface ValidatorV {
|
|
|
12
12
|
schema: T;
|
|
13
13
|
};
|
|
14
14
|
any: () => AnyValidator;
|
|
15
|
-
forbidden: () => AnyValidator;
|
|
16
15
|
array: <T extends BaseValidator>(validator: T, errorMessage?: string) => ArrayValidator & {
|
|
17
16
|
validator: T;
|
|
18
17
|
};
|
|
18
|
+
record: <T extends BaseValidator>(validator: T, errorMessage?: string) => RecordValidator & {
|
|
19
|
+
valueValidator: T;
|
|
20
|
+
};
|
|
21
|
+
tuple: <T extends BaseValidator[]>(validators: T, errorMessage?: string) => TupleValidator & {
|
|
22
|
+
validators: T;
|
|
23
|
+
};
|
|
19
24
|
date: (errorMessage?: string) => DateValidator;
|
|
20
25
|
string: (errorMessage?: string) => StringValidator;
|
|
21
26
|
enum: (values: any, errorMessage?: string) => ScalarValidator;
|
|
@@ -24,9 +29,6 @@ export interface ValidatorV {
|
|
|
24
29
|
float: (errorMessage?: string) => FloatValidator;
|
|
25
30
|
boolean: (errorMessage?: string) => BooleanValidator;
|
|
26
31
|
scalar: (errorMessage?: string) => ScalarValidator;
|
|
27
|
-
localized: (valueValidator?: BaseValidator, errorMessage?: string) => ArrayValidator & {
|
|
28
|
-
validator: BaseValidator;
|
|
29
|
-
};
|
|
30
32
|
union: (validators: BaseValidator[], errorMessage?: string) => UnionValidator;
|
|
31
33
|
validate: <T extends BaseValidator>(schema: T, data: any) => Promise<ValidationResult>;
|
|
32
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/factory/validators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EACL,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,cAAc,EACf,MAAM,eAAe,CAAC;AAGvB;;;;GAIG;AACH,eAAO,MAAM,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/factory/validators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EACL,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,cAAc,EACd,cAAc,EACf,MAAM,eAAe,CAAC;AAGvB;;;;GAIG;AACH,eAAO,MAAM,CAAC,EAAE,UA2DU,CAAC;AAE3B,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,CAAC,CAAC,SAAS,MAAM,EACvB,MAAM,EAAE,CAAC,EACT,YAAY,CAAC,EAAE,MAAM,KAClB,eAAe,GAAG;QACrB,MAAM,EAAE,CAAC,CAAC;KACX,CAAC;IACF,GAAG,EAAE,MAAM,YAAY,CAAC;IACxB,KAAK,EAAE,CAAC,CAAC,SAAS,aAAa,EAC7B,SAAS,EAAE,CAAC,EACZ,YAAY,CAAC,EAAE,MAAM,KAClB,cAAc,GAAG;QACpB,SAAS,EAAE,CAAC,CAAC;KACd,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,SAAS,aAAa,EAC9B,SAAS,EAAE,CAAC,EACZ,YAAY,CAAC,EAAE,MAAM,KAClB,eAAe,GAAG;QACrB,cAAc,EAAE,CAAC,CAAC;KACnB,CAAC;IACF,KAAK,EAAE,CAAC,CAAC,SAAS,aAAa,EAAE,EAC/B,UAAU,EAAE,CAAC,EACb,YAAY,CAAC,EAAE,MAAM,KAClB,cAAc,GAAG;QACpB,UAAU,EAAE,CAAC,CAAC;KACf,CAAC;IACF,IAAI,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,KAAK,aAAa,CAAC;IAC/C,MAAM,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,KAAK,eAAe,CAAC;IACnD,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,eAAe,CAAC;IAC9D,MAAM,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,KAAK,eAAe,CAAC;IACnD,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,KAAK,YAAY,CAAC;IAC7C,KAAK,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,KAAK,cAAc,CAAC;IACjD,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,KAAK,gBAAgB,CAAC;IACrD,MAAM,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,KAAK,eAAe,CAAC;IACnD,KAAK,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,cAAc,CAAC;IAC9E,QAAQ,EAAE,CAAC,CAAC,SAAS,aAAa,EAChC,MAAM,EAAE,CAAC,EACT,IAAI,EAAE,GAAG,KACN,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAChC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {AnyValidator}from'../validators/any-validator.js';import {ArrayValidator}from'../validators/array-validator.js';import'@mongez/reinforcements';import'@mongez/supportive-is';import'net';import {BooleanValidator}from'../validators/boolean-validator.js';import {DateValidator}from'../validators/date-validator.js';import {FloatValidator}from'../validators/float-validator.js';import {IntValidator}from'../validators/int-validator.js';import {NumberValidator}from'../validators/number-validator.js';import {ObjectValidator}from'../validators/object-validator.js';import {ScalarValidator}from'../validators/scalar-validator.js';import {StringValidator}from'../validators/string-validator.js';import {UnionValidator}from'../validators/union-validator.js';import {validate}from'./validate.js';/**
|
|
1
|
+
import {AnyValidator}from'../validators/any-validator.js';import {ArrayValidator}from'../validators/array-validator.js';import'@mongez/reinforcements';import'@mongez/supportive-is';import'net';import {BooleanValidator}from'../validators/boolean-validator.js';import {DateValidator}from'../validators/date-validator.js';import {FloatValidator}from'../validators/float-validator.js';import {IntValidator}from'../validators/int-validator.js';import {NumberValidator}from'../validators/number-validator.js';import {ObjectValidator}from'../validators/object-validator.js';import {RecordValidator}from'../validators/record-validator.js';import {ScalarValidator}from'../validators/scalar-validator.js';import {StringValidator}from'../validators/string-validator.js';import {TupleValidator}from'../validators/tuple-validator.js';import {UnionValidator}from'../validators/union-validator.js';import {validate}from'./validate.js';/**
|
|
2
2
|
* Seal factory object - creates instances of validators
|
|
3
3
|
*
|
|
4
4
|
* Use 'v' to create validation schemas (seals) for your data
|
|
@@ -8,10 +8,12 @@ const v = {
|
|
|
8
8
|
object: (schema, errorMessage) => new ObjectValidator(schema, errorMessage),
|
|
9
9
|
/** Create an any validator */
|
|
10
10
|
any: () => new AnyValidator(),
|
|
11
|
-
/** Create a forbidden validator */
|
|
12
|
-
forbidden: () => v.any().forbidden(),
|
|
13
11
|
/** Create an array validator */
|
|
14
12
|
array: (validator, errorMessage) => new ArrayValidator(validator, errorMessage),
|
|
13
|
+
/** Create a record validator - object with dynamic keys and consistent value types */
|
|
14
|
+
record: (validator, errorMessage) => new RecordValidator(validator, errorMessage),
|
|
15
|
+
/** Create a tuple validator - fixed-length array with position-specific types */
|
|
16
|
+
tuple: (validators, errorMessage) => new TupleValidator(validators, errorMessage),
|
|
15
17
|
/** Create a date validator */
|
|
16
18
|
date: (errorMessage) => new DateValidator(errorMessage),
|
|
17
19
|
/** Create a string validator */
|
|
@@ -28,11 +30,6 @@ const v = {
|
|
|
28
30
|
boolean: (errorMessage) => new BooleanValidator(errorMessage),
|
|
29
31
|
/** Create a scalar validator */
|
|
30
32
|
scalar: (errorMessage) => new ScalarValidator(errorMessage),
|
|
31
|
-
/** Create a localized array validator */
|
|
32
|
-
localized: (valueValidator, errorMessage) => v.array(v.object({
|
|
33
|
-
localeCode: v.string().required(),
|
|
34
|
-
value: (valueValidator || v.string()).required(),
|
|
35
|
-
}), errorMessage),
|
|
36
33
|
/** Create a union validator - validates against multiple types */
|
|
37
34
|
union: (validators, errorMessage) => new UnionValidator().union(validators, errorMessage),
|
|
38
35
|
/** Validate data against a schema */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validators.js","sources":["../../src/factory/validators.ts"],"sourcesContent":[null],"names":["validateFunction"],"mappings":"
|
|
1
|
+
{"version":3,"file":"validators.js","sources":["../../src/factory/validators.ts"],"sourcesContent":[null],"names":["validateFunction"],"mappings":"w5BAmBA;;;;AAIG;AACU,MAAA,CAAC,GAAe;;AAE3B,IAAA,MAAM,EAAE,CAAmB,MAAS,EAAE,YAAqB,KACzD,IAAI,eAAe,CAAC,MAAM,EAAE,YAAY,CAEvC;;AAGH,IAAA,GAAG,EAAE,MAAM,IAAI,YAAY,EAAE;;AAG7B,IAAA,KAAK,EAAE,CAA0B,SAAY,EAAE,YAAqB,KAClE,IAAI,cAAc,CAAC,SAAS,EAAE,YAAY,CAEzC;;AAGH,IAAA,MAAM,EAAE,CAA0B,SAAY,EAAE,YAAqB,KACnE,IAAI,eAAe,CAAC,SAAS,EAAE,YAAY,CAE1C;;AAGH,IAAA,KAAK,EAAE,CAA4B,UAAa,EAAE,YAAqB,KACrE,IAAI,cAAc,CAAC,UAAU,EAAE,YAAY,CAE1C;;IAGH,IAAI,EAAE,CAAC,YAAqB,KAAK,IAAI,aAAa,CAAC,YAAY,CAAC;;IAGhE,MAAM,EAAE,CAAC,YAAqB,KAAK,IAAI,eAAe,CAAC,YAAY,CAAC;;AAGpE,IAAA,IAAI,EAAE,CAAC,MAAW,EAAE,YAAqB,KACvC,IAAI,eAAe,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC;;IAGlD,MAAM,EAAE,CAAC,YAAqB,KAAK,IAAI,eAAe,CAAC,YAAY,CAAC;;IAGpE,GAAG,EAAE,CAAC,YAAqB,KAAK,IAAI,YAAY,CAAC,YAAY,CAAC;;IAG9D,KAAK,EAAE,CAAC,YAAqB,KAAK,IAAI,cAAc,CAAC,YAAY,CAAC;;IAGlE,OAAO,EAAE,CAAC,YAAqB,KAAK,IAAI,gBAAgB,CAAC,YAAY,CAAC;;IAGtE,MAAM,EAAE,CAAC,YAAqB,KAAK,IAAI,eAAe,CAAC,YAAY,CAAC;;AAGpE,IAAA,KAAK,EAAE,CAAC,UAA2B,EAAE,YAAqB,KACxD,IAAI,cAAc,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC;;AAGtD,IAAA,QAAQ,EAAEA,QAAgB;"}
|
package/esm/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{AnyValidator}from'./validators/any-validator.js';export{ArrayValidator}from'./validators/array-validator.js';export{BaseValidator}from'./validators/base-validator.js';export{BooleanValidator}from'./validators/boolean-validator.js';export{DateValidator}from'./validators/date-validator.js';export{FloatValidator}from'./validators/float-validator.js';export{IntValidator}from'./validators/int-validator.js';export{NumberValidator}from'./validators/number-validator.js';export{ObjectValidator}from'./validators/object-validator.js';export{ScalarValidator}from'./validators/scalar-validator.js';export{StringValidator}from'./validators/string-validator.js';export{UnionValidator}from'./validators/union-validator.js';export{WEEK_DAYS}from'./types/date-types.js';export{isDateValue}from'./helpers/date-helpers.js';export{getFieldValue}from'./helpers/get-field-value.js';export{setKeyPath}from'./helpers/path-helpers.js';export{VALID_RULE,invalidRule}from'./helpers/validation-helpers.js';export{flipArrayMutator,removeEmptyArrayElementsMutator,reverseArrayMutator,sortArrayMutator,uniqueArrayMutator}from'./mutators/array-mutators.js';export{addDaysMutator,addHoursMutator,addMonthsMutator,addYearsMutator,dateMutator,toDateOnlyMutator,toEndOfDayMutator,toEndOfMonthMutator,toEndOfYearMutator,toFormatMutator,toISOStringMutator,toStartOfDayMutator,toStartOfMonthMutator,toStartOfYearMutator,toTimeOnlyMutator,toTimestampMutator,toUTCMutator}from'./mutators/date-mutators.js';export{booleanMutator,numberMutator,roundNumberMutator}from'./mutators/number-mutators.js';export{jsonMutator,objectTrimMutator,stripUnknownMutator}from'./mutators/object-mutators.js';export{stringMutator}from'./mutators/scalar-mutators.js';export{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,titleCaseMutator,trimMultipleWhitespaceMutator,trimMutator,truncateMutator,unescapeHtmlMutator,uppercaseMutator,urlDecodeMutator,urlEncodeMutator}from'./mutators/string-mutators.js';export{equalRule}from'./rules/core/equal.js';export{forbiddenRule}from'./rules/core/forbidden.js';export{presentRule,requiredRule}from'./rules/core/required.js';export{unionRule}from'./rules/core/union.js';export{whenRule}from'./rules/core/when.js';export{alphaNumericRule,alphaRule,isNumericRule}from'./rules/string/alpha.js';export{isCreditCardRule}from'./rules/string/credit-card.js';export{emailRule}from'./rules/string/email.js';export{ip4Rule,ip6Rule,ipRule}from'./rules/string/ip.js';export{matchesRule}from'./rules/string/matches.js';export{patternRule}from'./rules/string/pattern.js';export{containsRule,endsWithRule,notContainsRule,startsWithRule}from'./rules/string/string-comparison.js';export{strongPasswordRule}from'./rules/string/strong-password-rule.js';export{urlRule}from'./rules/string/url.js';export{withoutWhitespaceRule}from'./rules/string/without-whitespace.js';export{betweenNumbersRule,evenRule,greaterThanRule,lessThanRule,maxRule,minRule,moduloRule,negativeRule,oddRule,positiveRule}from'./rules/number/number-rules.js';export{betweenLengthRule,lengthRule,maxLengthRule,maxWordsRule,minLengthRule,minWordsRule,wordsRule}from'./rules/length/length-rules.js';export{sortedArrayRule,uniqueArrayRule}from'./rules/array/array-rules.js';export{ageRule,beforeHourRule,beforeMinuteRule,beforeTodayRule,betweenHoursRule,betweenMinutesRule,dateRule,fromHourRule,fromMinuteRule,fromTodayRule,maxAgeRule,maxDateRule,minAgeRule,minDateRule,weekDayRule}from'./rules/date/date.js';export{afterTodayRule,betweenDatesRule,futureRule,pastRule,todayRule}from'./rules/date/date-comparison-rules.js';export{businessDayRule,weekdayRule,weekdaysRule,weekendRule}from'./rules/date/date-day-rules.js';export{afterFieldRule,beforeFieldRule,sameAsFieldDateRule}from'./rules/date/date-field-comparison-rules.js';export{betweenDaysRule,betweenMonthsRule,betweenTimesRule,betweenYearsRule,maxDayRule,maxMonthRule,maxYearRule,minDayRule,minMonthRule,minYearRule,monthRule,quarterRule,yearRule}from'./rules/date/date-period-rules.js';export{withinDaysRule,withinFutureDaysRule,withinPastDaysRule}from'./rules/date/date-relative-rules.js';export{betweenAgeRule,birthdayRule,leapYearRule}from'./rules/date/date-special-rules.js';export{maxHeightRule,maxWidthRule,minHeightRule,minWidthRule}from'./rules/file/dimensions.js';export{maxFileSizeRule,minFileSizeRule}from'./rules/file/file-size.js';export{colorRule,darkColorRule,hexColorRule,hslColorRule,lightColorRule,rgbColorRule,rgbaColorRule}from'./rules/color/color-rules.js';export{requiredIfEmptyRule,requiredIfInRule,requiredIfNotEmptyRule,requiredIfNotInRule,requiredIfRule}from'./rules/conditional/required-if-rules.js';export{requiredUnlessRule}from'./rules/conditional/required-unless-rules.js';export{requiredWithAllRule,requiredWithAnyRule,requiredWithRule}from'./rules/conditional/required-with-rules.js';export{requiredWithoutAllRule,requiredWithoutAnyRule,requiredWithoutRule}from'./rules/conditional/required-without-rules.js';export{presentIfEmptyRule,presentIfInRule,presentIfNotEmptyRule,presentIfNotInRule,presentIfRule}from'./rules/conditional/present-if-rules.js';export{presentUnlessRule}from'./rules/conditional/present-unless-rules.js';export{presentWithAllRule,presentWithAnyRule,presentWithRule}from'./rules/conditional/present-with-rules.js';export{presentWithoutAllRule,presentWithoutAnyRule,presentWithoutRule}from'./rules/conditional/present-without-rules.js';export{allowedValuesRule,enumRule,inRule,notAllowedValuesRule}from'./rules/common/enum.js';export{equalsFieldRule,notEqualsFieldRule}from'./rules/common/equals-field-rules.js';export{arrayRule,booleanRule,floatRule,intRule,numberRule,objectRule,scalarRule,stringRule}from'./rules/common/type-rules.js';export{unknownKeyRule}from'./rules/common/unknown-key.js';export{validate}from'./factory/validate.js';export{v}from'./factory/validators.js';export{getInstalledPlugins,hasPlugin,registerPlugin,unregisterPlugin}from'./plugins/plugin-system.js';export{configureSeal,getSealConfig,resetSealConfig}from'./config.js';//# sourceMappingURL=index.js.map
|
|
1
|
+
export{AnyValidator}from'./validators/any-validator.js';export{ArrayValidator}from'./validators/array-validator.js';export{BaseValidator}from'./validators/base-validator.js';export{BooleanValidator}from'./validators/boolean-validator.js';export{DateValidator}from'./validators/date-validator.js';export{FloatValidator}from'./validators/float-validator.js';export{IntValidator}from'./validators/int-validator.js';export{NumberValidator}from'./validators/number-validator.js';export{ObjectValidator}from'./validators/object-validator.js';export{RecordValidator}from'./validators/record-validator.js';export{ScalarValidator}from'./validators/scalar-validator.js';export{StringValidator}from'./validators/string-validator.js';export{TupleValidator}from'./validators/tuple-validator.js';export{UnionValidator}from'./validators/union-validator.js';export{WEEK_DAYS}from'./types/date-types.js';export{isDateValue}from'./helpers/date-helpers.js';export{getFieldValue}from'./helpers/get-field-value.js';export{setKeyPath}from'./helpers/path-helpers.js';export{VALID_RULE,invalidRule}from'./helpers/validation-helpers.js';export{flipArrayMutator,removeEmptyArrayElementsMutator,reverseArrayMutator,sortArrayMutator,uniqueArrayMutator}from'./mutators/array-mutators.js';export{addDaysMutator,addHoursMutator,addMonthsMutator,addYearsMutator,dateMutator,toDateOnlyMutator,toEndOfDayMutator,toEndOfMonthMutator,toEndOfYearMutator,toFormatMutator,toISOStringMutator,toStartOfDayMutator,toStartOfMonthMutator,toStartOfYearMutator,toTimeOnlyMutator,toTimestampMutator,toUTCMutator}from'./mutators/date-mutators.js';export{booleanMutator,numberMutator,roundNumberMutator}from'./mutators/number-mutators.js';export{jsonMutator,objectTrimMutator,stripUnknownMutator}from'./mutators/object-mutators.js';export{stringMutator}from'./mutators/scalar-mutators.js';export{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,titleCaseMutator,trimMultipleWhitespaceMutator,trimMutator,truncateMutator,unescapeHtmlMutator,uppercaseMutator,urlDecodeMutator,urlEncodeMutator}from'./mutators/string-mutators.js';export{equalRule}from'./rules/core/equal.js';export{forbiddenRule}from'./rules/core/forbidden.js';export{presentRule,requiredRule}from'./rules/core/required.js';export{unionRule}from'./rules/core/union.js';export{whenRule}from'./rules/core/when.js';export{alphaNumericRule,alphaRule,isNumericRule}from'./rules/string/alpha.js';export{isCreditCardRule}from'./rules/string/credit-card.js';export{emailRule}from'./rules/string/email.js';export{ip4Rule,ip6Rule,ipRule}from'./rules/string/ip.js';export{matchesRule}from'./rules/string/matches.js';export{patternRule}from'./rules/string/pattern.js';export{containsRule,endsWithRule,notContainsRule,startsWithRule}from'./rules/string/string-comparison.js';export{strongPasswordRule}from'./rules/string/strong-password-rule.js';export{urlRule}from'./rules/string/url.js';export{withoutWhitespaceRule}from'./rules/string/without-whitespace.js';export{betweenNumbersRule,evenRule,greaterThanRule,lessThanRule,maxRule,minRule,moduloRule,negativeRule,oddRule,positiveRule}from'./rules/number/number-rules.js';export{betweenLengthRule,lengthRule,maxLengthRule,maxWordsRule,minLengthRule,minWordsRule,wordsRule}from'./rules/length/length-rules.js';export{sortedArrayRule,uniqueArrayRule}from'./rules/array/array-rules.js';export{ageRule,beforeHourRule,beforeMinuteRule,beforeTodayRule,betweenHoursRule,betweenMinutesRule,dateRule,fromHourRule,fromMinuteRule,fromTodayRule,maxAgeRule,maxDateRule,minAgeRule,minDateRule,weekDayRule}from'./rules/date/date.js';export{afterTodayRule,betweenDatesRule,futureRule,pastRule,todayRule}from'./rules/date/date-comparison-rules.js';export{businessDayRule,weekdayRule,weekdaysRule,weekendRule}from'./rules/date/date-day-rules.js';export{afterFieldRule,beforeFieldRule,sameAsFieldDateRule}from'./rules/date/date-field-comparison-rules.js';export{betweenDaysRule,betweenMonthsRule,betweenTimesRule,betweenYearsRule,maxDayRule,maxMonthRule,maxYearRule,minDayRule,minMonthRule,minYearRule,monthRule,quarterRule,yearRule}from'./rules/date/date-period-rules.js';export{withinDaysRule,withinFutureDaysRule,withinPastDaysRule}from'./rules/date/date-relative-rules.js';export{betweenAgeRule,birthdayRule,leapYearRule}from'./rules/date/date-special-rules.js';export{maxHeightRule,maxWidthRule,minHeightRule,minWidthRule}from'./rules/file/dimensions.js';export{maxFileSizeRule,minFileSizeRule}from'./rules/file/file-size.js';export{colorRule,darkColorRule,hexColorRule,hslColorRule,lightColorRule,rgbColorRule,rgbaColorRule}from'./rules/color/color-rules.js';export{requiredIfEmptyRule,requiredIfInRule,requiredIfNotEmptyRule,requiredIfNotInRule,requiredIfRule}from'./rules/conditional/required-if-rules.js';export{requiredUnlessRule}from'./rules/conditional/required-unless-rules.js';export{requiredWithAllRule,requiredWithAnyRule,requiredWithRule}from'./rules/conditional/required-with-rules.js';export{requiredWithoutAllRule,requiredWithoutAnyRule,requiredWithoutRule}from'./rules/conditional/required-without-rules.js';export{presentIfEmptyRule,presentIfInRule,presentIfNotEmptyRule,presentIfNotInRule,presentIfRule}from'./rules/conditional/present-if-rules.js';export{presentUnlessRule}from'./rules/conditional/present-unless-rules.js';export{presentWithAllRule,presentWithAnyRule,presentWithRule}from'./rules/conditional/present-with-rules.js';export{presentWithoutAllRule,presentWithoutAnyRule,presentWithoutRule}from'./rules/conditional/present-without-rules.js';export{forbiddenIfEmptyRule,forbiddenIfInRule,forbiddenIfNotEmptyRule,forbiddenIfNotInRule,forbiddenIfNotRule,forbiddenIfRule}from'./rules/conditional/forbidden-if-rules.js';export{allowedValuesRule,enumRule,inRule,notAllowedValuesRule}from'./rules/common/enum.js';export{equalsFieldRule,notEqualsFieldRule}from'./rules/common/equals-field-rules.js';export{arrayRule,booleanRule,floatRule,intRule,numberRule,objectRule,scalarRule,stringRule}from'./rules/common/type-rules.js';export{unknownKeyRule}from'./rules/common/unknown-key.js';export{validate}from'./factory/validate.js';export{v}from'./factory/validators.js';export{getInstalledPlugins,hasPlugin,registerPlugin,unregisterPlugin}from'./plugins/plugin-system.js';export{configureSeal,getSealConfig,resetSealConfig}from'./config.js';//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { SchemaRule } from "../../types";
|
|
2
|
+
/**
|
|
3
|
+
* Forbidden if rule - field is forbidden if another field equals a specific value
|
|
4
|
+
* Supports both global and sibling scope
|
|
5
|
+
*/
|
|
6
|
+
export declare const forbiddenIfRule: SchemaRule<{
|
|
7
|
+
field: string;
|
|
8
|
+
value: any;
|
|
9
|
+
scope?: "global" | "sibling";
|
|
10
|
+
}>;
|
|
11
|
+
/**
|
|
12
|
+
* Forbidden if not rule - field is forbidden if another field does NOT equal a specific value
|
|
13
|
+
* Supports both global and sibling scope
|
|
14
|
+
*/
|
|
15
|
+
export declare const forbiddenIfNotRule: SchemaRule<{
|
|
16
|
+
field: string;
|
|
17
|
+
value: any;
|
|
18
|
+
scope?: "global" | "sibling";
|
|
19
|
+
}>;
|
|
20
|
+
/**
|
|
21
|
+
* Forbidden if empty rule - field is forbidden if another field is empty
|
|
22
|
+
* Supports both global and sibling scope
|
|
23
|
+
*/
|
|
24
|
+
export declare const forbiddenIfEmptyRule: SchemaRule<{
|
|
25
|
+
field: string;
|
|
26
|
+
scope?: "global" | "sibling";
|
|
27
|
+
}>;
|
|
28
|
+
/**
|
|
29
|
+
* Forbidden if not empty rule - field is forbidden if another field is not empty
|
|
30
|
+
* Supports both global and sibling scope
|
|
31
|
+
*/
|
|
32
|
+
export declare const forbiddenIfNotEmptyRule: SchemaRule<{
|
|
33
|
+
field: string;
|
|
34
|
+
scope?: "global" | "sibling";
|
|
35
|
+
}>;
|
|
36
|
+
/**
|
|
37
|
+
* Forbidden if in rule - field is forbidden if another field's value is in the given array
|
|
38
|
+
* Supports both global and sibling scope
|
|
39
|
+
*/
|
|
40
|
+
export declare const forbiddenIfInRule: SchemaRule<{
|
|
41
|
+
field: string;
|
|
42
|
+
values: any[];
|
|
43
|
+
scope?: "global" | "sibling";
|
|
44
|
+
}>;
|
|
45
|
+
/**
|
|
46
|
+
* Forbidden if not in rule - field is forbidden if another field's value is NOT in the given array
|
|
47
|
+
* Supports both global and sibling scope
|
|
48
|
+
*/
|
|
49
|
+
export declare const forbiddenIfNotInRule: SchemaRule<{
|
|
50
|
+
field: string;
|
|
51
|
+
values: any[];
|
|
52
|
+
scope?: "global" | "sibling";
|
|
53
|
+
}>;
|
|
54
|
+
//# sourceMappingURL=forbidden-if-rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forbidden-if-rules.d.ts","sourceRoot":"","sources":["../../../src/rules/conditional/forbidden-if-rules.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,UAAU,CAAC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B,CAiBA,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,UAAU,CAAC;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B,CAiBA,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,UAAU,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B,CAeA,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,UAAU,CAAC;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B,CAeA,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,UAAU,CAAC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,GAAG,EAAE,CAAC;IACd,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B,CAiBA,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,UAAU,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,GAAG,EAAE,CAAC;IACd,KAAK,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC9B,CAiBA,CAAC"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import {isEmpty}from'@mongez/supportive-is';import {getFieldValue}from'../../helpers/get-field-value.js';import {invalidRule,VALID_RULE}from'../../helpers/validation-helpers.js';/**
|
|
2
|
+
* Forbidden if rule - field is forbidden if another field equals a specific value
|
|
3
|
+
* Supports both global and sibling scope
|
|
4
|
+
*/
|
|
5
|
+
const forbiddenIfRule = {
|
|
6
|
+
name: "forbiddenIf",
|
|
7
|
+
description: "The field is forbidden if another field equals a specific value",
|
|
8
|
+
sortOrder: -2,
|
|
9
|
+
defaultErrorMessage: "The :input is forbidden",
|
|
10
|
+
async validate(value, context) {
|
|
11
|
+
const { value: expectedValue } = this.context.options;
|
|
12
|
+
const fieldValue = getFieldValue(this, context);
|
|
13
|
+
// Field is forbidden if it has a value and the other field equals the expected value
|
|
14
|
+
if (!isEmpty(value) && fieldValue === expectedValue) {
|
|
15
|
+
return invalidRule(this, context);
|
|
16
|
+
}
|
|
17
|
+
return VALID_RULE;
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Forbidden if not rule - field is forbidden if another field does NOT equal a specific value
|
|
22
|
+
* Supports both global and sibling scope
|
|
23
|
+
*/
|
|
24
|
+
const forbiddenIfNotRule = {
|
|
25
|
+
name: "forbiddenIfNot",
|
|
26
|
+
description: "The field is forbidden if another field does NOT equal a specific value",
|
|
27
|
+
sortOrder: -2,
|
|
28
|
+
defaultErrorMessage: "The :input is forbidden",
|
|
29
|
+
async validate(value, context) {
|
|
30
|
+
const { value: expectedValue } = this.context.options;
|
|
31
|
+
const fieldValue = getFieldValue(this, context);
|
|
32
|
+
// Field is forbidden if it has a value and the other field does NOT equal the expected value
|
|
33
|
+
if (!isEmpty(value) && fieldValue !== expectedValue) {
|
|
34
|
+
return invalidRule(this, context);
|
|
35
|
+
}
|
|
36
|
+
return VALID_RULE;
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Forbidden if empty rule - field is forbidden if another field is empty
|
|
41
|
+
* Supports both global and sibling scope
|
|
42
|
+
*/
|
|
43
|
+
const forbiddenIfEmptyRule = {
|
|
44
|
+
name: "forbiddenIfEmpty",
|
|
45
|
+
description: "The field is forbidden if another field is empty",
|
|
46
|
+
sortOrder: -2,
|
|
47
|
+
defaultErrorMessage: "The :input is forbidden",
|
|
48
|
+
async validate(value, context) {
|
|
49
|
+
const fieldValue = getFieldValue(this, context);
|
|
50
|
+
// Field is forbidden if it has a value and the other field is empty
|
|
51
|
+
if (!isEmpty(value) && isEmpty(fieldValue)) {
|
|
52
|
+
return invalidRule(this, context);
|
|
53
|
+
}
|
|
54
|
+
return VALID_RULE;
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Forbidden if not empty rule - field is forbidden if another field is not empty
|
|
59
|
+
* Supports both global and sibling scope
|
|
60
|
+
*/
|
|
61
|
+
const forbiddenIfNotEmptyRule = {
|
|
62
|
+
name: "forbiddenIfNotEmpty",
|
|
63
|
+
description: "The field is forbidden if another field is not empty",
|
|
64
|
+
sortOrder: -2,
|
|
65
|
+
defaultErrorMessage: "The :input is forbidden",
|
|
66
|
+
async validate(value, context) {
|
|
67
|
+
const fieldValue = getFieldValue(this, context);
|
|
68
|
+
// Field is forbidden if it has a value and the other field is not empty
|
|
69
|
+
if (!isEmpty(value) && !isEmpty(fieldValue)) {
|
|
70
|
+
return invalidRule(this, context);
|
|
71
|
+
}
|
|
72
|
+
return VALID_RULE;
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Forbidden if in rule - field is forbidden if another field's value is in the given array
|
|
77
|
+
* Supports both global and sibling scope
|
|
78
|
+
*/
|
|
79
|
+
const forbiddenIfInRule = {
|
|
80
|
+
name: "forbiddenIfIn",
|
|
81
|
+
description: "The field is forbidden if another field's value is in the given array",
|
|
82
|
+
sortOrder: -2,
|
|
83
|
+
defaultErrorMessage: "The :input is forbidden",
|
|
84
|
+
async validate(value, context) {
|
|
85
|
+
const { values } = this.context.options;
|
|
86
|
+
const fieldValue = getFieldValue(this, context);
|
|
87
|
+
// Field is forbidden if it has a value and the other field's value is in the array
|
|
88
|
+
if (!isEmpty(value) && values.includes(fieldValue)) {
|
|
89
|
+
return invalidRule(this, context);
|
|
90
|
+
}
|
|
91
|
+
return VALID_RULE;
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
* Forbidden if not in rule - field is forbidden if another field's value is NOT in the given array
|
|
96
|
+
* Supports both global and sibling scope
|
|
97
|
+
*/
|
|
98
|
+
const forbiddenIfNotInRule = {
|
|
99
|
+
name: "forbiddenIfNotIn",
|
|
100
|
+
description: "The field is forbidden if another field's value is NOT in the given array",
|
|
101
|
+
sortOrder: -2,
|
|
102
|
+
defaultErrorMessage: "The :input is forbidden",
|
|
103
|
+
async validate(value, context) {
|
|
104
|
+
const { values } = this.context.options;
|
|
105
|
+
const fieldValue = getFieldValue(this, context);
|
|
106
|
+
// Field is forbidden if it has a value and the other field's value is NOT in the array
|
|
107
|
+
if (!isEmpty(value) && !values.includes(fieldValue)) {
|
|
108
|
+
return invalidRule(this, context);
|
|
109
|
+
}
|
|
110
|
+
return VALID_RULE;
|
|
111
|
+
},
|
|
112
|
+
};export{forbiddenIfEmptyRule,forbiddenIfInRule,forbiddenIfNotEmptyRule,forbiddenIfNotInRule,forbiddenIfNotRule,forbiddenIfRule};//# sourceMappingURL=forbidden-if-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forbidden-if-rules.js","sources":["../../../src/rules/conditional/forbidden-if-rules.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rules/conditional/index.ts"],"names":[],"mappings":"AACA,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AAGzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rules/conditional/index.ts"],"names":[],"mappings":"AACA,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AAGzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AAGxC,cAAc,sBAAsB,CAAC"}
|
|
@@ -8,6 +8,7 @@ export declare class BaseValidator {
|
|
|
8
8
|
protected defaultValue: any;
|
|
9
9
|
protected description?: string;
|
|
10
10
|
protected shouldOmit: boolean;
|
|
11
|
+
protected isNullable: boolean;
|
|
11
12
|
/**
|
|
12
13
|
* Pipeline to transform the mutated/original data before returning it
|
|
13
14
|
*/
|
|
@@ -22,6 +23,14 @@ export declare class BaseValidator {
|
|
|
22
23
|
* Get the default value
|
|
23
24
|
*/
|
|
24
25
|
getDefaultValue(): any;
|
|
26
|
+
/**
|
|
27
|
+
* Determine if value accepts null value
|
|
28
|
+
*/
|
|
29
|
+
nullable(): this;
|
|
30
|
+
/**
|
|
31
|
+
* Explicitly disallow null values after calling nullable
|
|
32
|
+
*/
|
|
33
|
+
notNullable(): this;
|
|
25
34
|
/**
|
|
26
35
|
* Add transformer with optional options
|
|
27
36
|
*
|
|
@@ -466,6 +475,54 @@ export declare class BaseValidator {
|
|
|
466
475
|
* Value is forbidden to be present
|
|
467
476
|
*/
|
|
468
477
|
forbidden(errorMessage?: string): this;
|
|
478
|
+
/**
|
|
479
|
+
* Value is forbidden if another field equals a specific value (global scope)
|
|
480
|
+
*/
|
|
481
|
+
forbiddenIf(field: string, value: any, errorMessage?: string): this;
|
|
482
|
+
/**
|
|
483
|
+
* Value is forbidden if another field equals a specific value (sibling scope)
|
|
484
|
+
*/
|
|
485
|
+
forbiddenIfSibling(field: string, value: any, errorMessage?: string): this;
|
|
486
|
+
/**
|
|
487
|
+
* Value is forbidden if another field does NOT equal a specific value (global scope)
|
|
488
|
+
*/
|
|
489
|
+
forbiddenIfNot(field: string, value: any, errorMessage?: string): this;
|
|
490
|
+
/**
|
|
491
|
+
* Value is forbidden if another field does NOT equal a specific value (sibling scope)
|
|
492
|
+
*/
|
|
493
|
+
forbiddenIfNotSibling(field: string, value: any, errorMessage?: string): this;
|
|
494
|
+
/**
|
|
495
|
+
* Value is forbidden if another field is empty (global scope)
|
|
496
|
+
*/
|
|
497
|
+
forbiddenIfEmpty(field: string, errorMessage?: string): this;
|
|
498
|
+
/**
|
|
499
|
+
* Value is forbidden if another field is empty (sibling scope)
|
|
500
|
+
*/
|
|
501
|
+
forbiddenIfEmptySibling(field: string, errorMessage?: string): this;
|
|
502
|
+
/**
|
|
503
|
+
* Value is forbidden if another field is not empty (global scope)
|
|
504
|
+
*/
|
|
505
|
+
forbiddenIfNotEmpty(field: string, errorMessage?: string): this;
|
|
506
|
+
/**
|
|
507
|
+
* Value is forbidden if another field is not empty (sibling scope)
|
|
508
|
+
*/
|
|
509
|
+
forbiddenIfNotEmptySibling(field: string, errorMessage?: string): this;
|
|
510
|
+
/**
|
|
511
|
+
* Value is forbidden if another field's value is in the given array (global scope)
|
|
512
|
+
*/
|
|
513
|
+
forbiddenIfIn(field: string, values: any[], errorMessage?: string): this;
|
|
514
|
+
/**
|
|
515
|
+
* Value is forbidden if another field's value is in the given array (sibling scope)
|
|
516
|
+
*/
|
|
517
|
+
forbiddenIfInSibling(field: string, values: any[], errorMessage?: string): this;
|
|
518
|
+
/**
|
|
519
|
+
* Value is forbidden if another field's value is NOT in the given array (global scope)
|
|
520
|
+
*/
|
|
521
|
+
forbiddenIfNotIn(field: string, values: any[], errorMessage?: string): this;
|
|
522
|
+
/**
|
|
523
|
+
* Value is forbidden if another field's value is NOT in the given array (sibling scope)
|
|
524
|
+
*/
|
|
525
|
+
forbiddenIfNotInSibling(field: string, values: any[], errorMessage?: string): this;
|
|
469
526
|
/**
|
|
470
527
|
* Apply different validation rules based on another field's value (global scope)
|
|
471
528
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-validator.d.ts","sourceRoot":"","sources":["../../src/validators/base-validator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base-validator.d.ts","sourceRoot":"","sources":["../../src/validators/base-validator.ts"],"names":[],"mappings":"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"}
|