@platecms/delta-validation 0.3.1 → 0.4.1
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/README.md +1 -1
- package/package.json +4 -5
- package/src/index.d.ts +20 -20
- package/src/index.js +13 -20
- package/src/index.js.map +1 -1
- package/src/lib/{types → enums}/rule-types.enum.js.map +1 -1
- package/src/lib/errors/invalid-validation-arguments.error.d.ts +2 -0
- package/src/lib/errors/invalid-validation-arguments.error.js +7 -0
- package/src/lib/errors/invalid-validation-arguments.error.js.map +1 -0
- package/src/lib/errors/invalid-validation-rule-settings.error.d.ts +2 -0
- package/src/lib/errors/invalid-validation-rule-settings.error.js +7 -0
- package/src/lib/errors/invalid-validation-rule-settings.error.js.map +1 -0
- package/src/lib/errors/validation-error-details.d.ts +6 -0
- package/src/lib/errors/{content-validation-error-detail.js → validation-error-details.js} +6 -7
- package/src/lib/errors/validation-error-details.js.map +1 -0
- package/src/lib/errors/validation.error.d.ts +8 -0
- package/src/lib/errors/validation.error.js +13 -0
- package/src/lib/errors/validation.error.js.map +1 -0
- package/src/lib/helpers/deserialize-validation-rule.js +1 -1
- package/src/lib/helpers/deserialize-validation-rule.js.map +1 -1
- package/src/lib/helpers/rule-to-schema.d.ts +4 -0
- package/src/lib/helpers/rule-to-schema.js +65 -0
- package/src/lib/helpers/rule-to-schema.js.map +1 -0
- package/src/lib/helpers/schema-builder.d.ts +12 -0
- package/src/lib/helpers/schema-builder.js +27 -0
- package/src/lib/helpers/schema-builder.js.map +1 -0
- package/src/lib/helpers/validate-with-function.d.ts +4 -0
- package/src/lib/helpers/validate-with-function.js +31 -0
- package/src/lib/helpers/validate-with-function.js.map +1 -0
- package/src/lib/schemas/array.schema.d.ts +17 -0
- package/src/lib/schemas/array.schema.js +84 -0
- package/src/lib/schemas/array.schema.js.map +1 -0
- package/src/lib/schemas/base.schema.d.ts +20 -0
- package/src/lib/schemas/base.schema.js +95 -0
- package/src/lib/schemas/base.schema.js.map +1 -0
- package/src/lib/schemas/content-value.schema.d.ts +15 -0
- package/src/lib/schemas/content-value.schema.js +42 -0
- package/src/lib/schemas/content-value.schema.js.map +1 -0
- package/src/lib/schemas/date.schema.d.ts +13 -0
- package/src/lib/schemas/date.schema.js +62 -0
- package/src/lib/schemas/date.schema.js.map +1 -0
- package/src/lib/schemas/number.schema.d.ts +16 -0
- package/src/lib/schemas/number.schema.js +84 -0
- package/src/lib/schemas/number.schema.js.map +1 -0
- package/src/lib/schemas/string.schema.d.ts +11 -0
- package/src/lib/schemas/string.schema.js +56 -0
- package/src/lib/schemas/string.schema.js.map +1 -0
- package/src/lib/types/existing-content-validation-rules-settings.type.d.ts +1 -1
- package/src/lib/types/existing-validation-schemas.type.d.ts +6 -0
- package/src/lib/types/{unknown-validation-error-target.interface.js → existing-validation-schemas.type.js} +1 -1
- package/src/lib/types/existing-validation-schemas.type.js.map +1 -0
- package/src/lib/types/rule-instance.interface.d.ts +3 -0
- package/src/lib/types/validation-context.interface.d.ts +5 -0
- package/src/lib/types/validation-context.interface.js +3 -0
- package/src/lib/types/validation-context.interface.js.map +1 -0
- package/src/lib/types/validation-error-data.interface.d.ts +7 -0
- package/src/lib/types/validation-error-data.interface.js +3 -0
- package/src/lib/types/validation-error-data.interface.js.map +1 -0
- package/src/lib/types/validation-result.interface.d.ts +5 -0
- package/src/lib/types/validation-result.interface.js +3 -0
- package/src/lib/types/validation-result.interface.js.map +1 -0
- package/src/lib/types/validation-schema.interface.d.ts +7 -0
- package/src/lib/types/validation-schema.interface.js +3 -0
- package/src/lib/types/validation-schema.interface.js.map +1 -0
- package/src/lib/validation-rules/allowed-values.validation-rule.d.ts +4 -3
- package/src/lib/validation-rules/allowed-values.validation-rule.js +5 -4
- package/src/lib/validation-rules/allowed-values.validation-rule.js.map +1 -1
- package/src/lib/validation-rules/base.validation-rule.d.ts +4 -4
- package/src/lib/validation-rules/count.validation-rule.d.ts +5 -4
- package/src/lib/validation-rules/count.validation-rule.js +13 -12
- package/src/lib/validation-rules/count.validation-rule.js.map +1 -1
- package/src/lib/validation-rules/date-between.validation-rule.d.ts +6 -5
- package/src/lib/validation-rules/date-between.validation-rule.js +10 -9
- package/src/lib/validation-rules/date-between.validation-rule.js.map +1 -1
- package/src/lib/validation-rules/decimal-count.validation-rule.d.ts +4 -3
- package/src/lib/validation-rules/decimal-count.validation-rule.js +10 -6
- package/src/lib/validation-rules/decimal-count.validation-rule.js.map +1 -1
- package/src/lib/validation-rules/number-between.validation-rule.d.ts +4 -3
- package/src/lib/validation-rules/number-between.validation-rule.js +11 -9
- package/src/lib/validation-rules/number-between.validation-rule.js.map +1 -1
- package/src/lib/validation-rules/relatable-content-types.validation-rule.d.ts +3 -3
- package/src/lib/validation-rules/relatable-content-types.validation-rule.js +7 -7
- package/src/lib/validation-rules/relatable-content-types.validation-rule.js.map +1 -1
- package/src/lib/validation-rules/string-format.validation-rule.d.ts +3 -3
- package/src/lib/validation-rules/string-format.validation-rule.js +9 -4
- package/src/lib/validation-rules/string-format.validation-rule.js.map +1 -1
- package/src/lib/validation-rules/validation-rule-function.factory.d.ts +1 -1
- package/src/lib/validation-rules/value-type.validation-rule.d.ts +2 -2
- package/src/lib/validation-rules/value-type.validation-rule.js +6 -6
- package/src/lib/validation-rules/value-type.validation-rule.js.map +1 -1
- package/src/lib/content-validation-error.serializer.d.ts +0 -7
- package/src/lib/content-validation-error.serializer.js +0 -30
- package/src/lib/content-validation-error.serializer.js.map +0 -1
- package/src/lib/errors/content-validation-error-detail.d.ts +0 -6
- package/src/lib/errors/content-validation-error-detail.js.map +0 -1
- package/src/lib/errors/content-validation-error.d.ts +0 -9
- package/src/lib/errors/content-validation-error.js +0 -24
- package/src/lib/errors/content-validation-error.js.map +0 -1
- package/src/lib/errors/validation-error-detail.d.ts +0 -4
- package/src/lib/errors/validation-error-detail.js +0 -10
- package/src/lib/errors/validation-error-detail.js.map +0 -1
- package/src/lib/errors/validation-error.d.ts +0 -9
- package/src/lib/errors/validation-error.js +0 -36
- package/src/lib/errors/validation-error.js.map +0 -1
- package/src/lib/invalid-content-validation-error.error.d.ts +0 -5
- package/src/lib/invalid-content-validation-error.error.js +0 -14
- package/src/lib/invalid-content-validation-error.error.js.map +0 -1
- package/src/lib/invalid-content-validation-validate-args.error.d.ts +0 -2
- package/src/lib/invalid-content-validation-validate-args.error.js +0 -7
- package/src/lib/invalid-content-validation-validate-args.error.js.map +0 -1
- package/src/lib/invalid-content-validation.error.d.ts +0 -2
- package/src/lib/invalid-content-validation.error.js +0 -7
- package/src/lib/invalid-content-validation.error.js.map +0 -1
- package/src/lib/types/content-item.model.d.ts +0 -7
- package/src/lib/types/content-item.model.js +0 -11
- package/src/lib/types/content-item.model.js.map +0 -1
- package/src/lib/types/content-type.model.d.ts +0 -6
- package/src/lib/types/content-type.model.js +0 -11
- package/src/lib/types/content-type.model.js.map +0 -1
- package/src/lib/types/unknown-validation-error-target.interface.d.ts +0 -5
- package/src/lib/types/unknown-validation-error-target.interface.js.map +0 -1
- /package/src/lib/{types → enums}/rule-types.enum.d.ts +0 -0
- /package/src/lib/{types → enums}/rule-types.enum.js +0 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseValidationSchema = void 0;
|
|
4
|
+
const rule_types_enum_1 = require("../enums/rule-types.enum");
|
|
5
|
+
const validate_with_function_1 = require("../helpers/validate-with-function");
|
|
6
|
+
const allowed_values_validation_rule_1 = require("../validation-rules/allowed-values.validation-rule");
|
|
7
|
+
class BaseValidationSchema {
|
|
8
|
+
constructor(validationRule) {
|
|
9
|
+
if (validationRule) {
|
|
10
|
+
this._validationRule = {
|
|
11
|
+
id: validationRule.id,
|
|
12
|
+
ruleType: validationRule.ruleType,
|
|
13
|
+
settings: validationRule.settings,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
required(required) {
|
|
18
|
+
this._required = required;
|
|
19
|
+
return this;
|
|
20
|
+
}
|
|
21
|
+
message(msg) {
|
|
22
|
+
this._message = msg;
|
|
23
|
+
return this;
|
|
24
|
+
}
|
|
25
|
+
allowedValues(values) {
|
|
26
|
+
this._allowedValues = values;
|
|
27
|
+
return this;
|
|
28
|
+
}
|
|
29
|
+
validate(value, context = {}) {
|
|
30
|
+
const errors = [];
|
|
31
|
+
const path = context?.path ?? [];
|
|
32
|
+
const isRequired = this._required ?? false;
|
|
33
|
+
if (isRequired && (value === undefined || value === null)) {
|
|
34
|
+
return {
|
|
35
|
+
isValid: false,
|
|
36
|
+
errors: [
|
|
37
|
+
{
|
|
38
|
+
path,
|
|
39
|
+
message: this._message ?? "Value is required",
|
|
40
|
+
provided: value,
|
|
41
|
+
validationRule: {
|
|
42
|
+
ruleType: rule_types_enum_1.RuleType.COUNT,
|
|
43
|
+
settings: {
|
|
44
|
+
min: 1,
|
|
45
|
+
max: 1,
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
],
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
if (!isRequired && (value === undefined || value === null)) {
|
|
53
|
+
return {
|
|
54
|
+
isValid: true,
|
|
55
|
+
errors: [],
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
errors.push(...this._typeCheck(value, path));
|
|
59
|
+
if (errors.length > 0) {
|
|
60
|
+
return {
|
|
61
|
+
isValid: false,
|
|
62
|
+
errors,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
errors.push(...this._validateAgainstSchema(value, context));
|
|
66
|
+
if (errors.length > 0) {
|
|
67
|
+
return {
|
|
68
|
+
isValid: false,
|
|
69
|
+
errors,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
const allowedValuesError = this._validateAllowedValues(value, path);
|
|
73
|
+
if (allowedValuesError) {
|
|
74
|
+
errors.push(allowedValuesError);
|
|
75
|
+
}
|
|
76
|
+
return {
|
|
77
|
+
isValid: errors.length === 0,
|
|
78
|
+
errors,
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
_validateAllowedValues(value, path) {
|
|
82
|
+
if (this._allowedValues === undefined) {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
const validationRule = this._validationRule ?? {
|
|
86
|
+
ruleType: rule_types_enum_1.RuleType.ALLOWED_VALUES,
|
|
87
|
+
settings: {
|
|
88
|
+
allowedValues: this._allowedValues,
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
return (0, validate_with_function_1.validateWithFunction)(value, validationRule, path, this._message ?? "Value is not in allowed values list", allowed_values_validation_rule_1.validateValueAllowedValues);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
exports.BaseValidationSchema = BaseValidationSchema;
|
|
95
|
+
//# sourceMappingURL=base.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.schema.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/schemas/base.schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { PRN } from "@platecms/delta-plate-resource-notation";
|
|
2
|
+
import { ContentValueType, ContentValueTypeName } from "@platecms/delta-types";
|
|
3
|
+
import { ValidationContext } from "../types/validation-context.interface";
|
|
4
|
+
import { ValidationErrorData } from "../types/validation-error-data.interface";
|
|
5
|
+
import { BaseValidationSchema } from "./base.schema";
|
|
6
|
+
export declare class ContentValueValidationSchema extends BaseValidationSchema<ContentValueType, ContentValueValidationSchema> {
|
|
7
|
+
readonly type = "content-value";
|
|
8
|
+
private _allowedValueTypes?;
|
|
9
|
+
private _allowedContentTypes?;
|
|
10
|
+
allowedContentTypes(types: PRN[]): this;
|
|
11
|
+
allowedValueTypes(types: ContentValueTypeName<ContentValueType>[]): this;
|
|
12
|
+
protected _typeCheck(value: unknown, path: string[]): ValidationErrorData[];
|
|
13
|
+
protected _validateAgainstSchema(_value: ContentValueType, _context?: ValidationContext): ValidationErrorData[];
|
|
14
|
+
private _validateAllowedValueTypes;
|
|
15
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ContentValueValidationSchema = void 0;
|
|
4
|
+
const rule_types_enum_1 = require("../enums/rule-types.enum");
|
|
5
|
+
const validate_with_function_1 = require("../helpers/validate-with-function");
|
|
6
|
+
const value_type_validation_rule_1 = require("../validation-rules/value-type.validation-rule");
|
|
7
|
+
const base_schema_1 = require("./base.schema");
|
|
8
|
+
class ContentValueValidationSchema extends base_schema_1.BaseValidationSchema {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(...arguments);
|
|
11
|
+
this.type = "content-value";
|
|
12
|
+
}
|
|
13
|
+
allowedContentTypes(types) {
|
|
14
|
+
this._allowedContentTypes = types;
|
|
15
|
+
return this;
|
|
16
|
+
}
|
|
17
|
+
allowedValueTypes(types) {
|
|
18
|
+
this._allowedValueTypes = types;
|
|
19
|
+
return this;
|
|
20
|
+
}
|
|
21
|
+
_typeCheck(value, path) {
|
|
22
|
+
const allowedValueTypesError = this._validateAllowedValueTypes(value, path);
|
|
23
|
+
return allowedValueTypesError ? [allowedValueTypesError] : [];
|
|
24
|
+
}
|
|
25
|
+
_validateAgainstSchema(_value, _context = {}) {
|
|
26
|
+
return [];
|
|
27
|
+
}
|
|
28
|
+
_validateAllowedValueTypes(value, path) {
|
|
29
|
+
if (this._allowedValueTypes === undefined) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
const validationRule = this._validationRule ?? {
|
|
33
|
+
ruleType: rule_types_enum_1.RuleType.VALUE_TYPE,
|
|
34
|
+
settings: {
|
|
35
|
+
allowedTypes: this._allowedValueTypes,
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
return (0, validate_with_function_1.validateWithFunction)(value, validationRule, path, this._message ?? "Value type validation failed", value_type_validation_rule_1.validateValueValueType);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.ContentValueValidationSchema = ContentValueValidationSchema;
|
|
42
|
+
//# sourceMappingURL=content-value.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-value.schema.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/schemas/content-value.schema.ts"],"names":[],"mappings":";;;AAEA,8DAAoD;AACpD,8EAAyE;AAIzE,+FAGwD;AACxD,+CAAqD;AAErD,MAAa,4BAA6B,SAAQ,kCAAoE;IAAtH;;QACkB,SAAI,GAAG,eAAe,CAAC;IA8CzC,CAAC;IA1CQ,mBAAmB,CAAC,KAAY;QACrC,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,iBAAiB,CAAC,KAA+C;QACtE,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAES,UAAU,CAAC,KAAc,EAAE,IAAc;QACjD,MAAM,sBAAsB,GAAG,IAAI,CAAC,0BAA0B,CAAC,KAAyB,EAAE,IAAI,CAAC,CAAC;QAChG,OAAO,sBAAsB,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,CAAC;IAES,sBAAsB,CAAC,MAAwB,EAAE,WAA8B,EAAE;QACzF,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,0BAA0B,CAChC,KAAuB,EACvB,IAAc;QAEd,IAAI,IAAI,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,IAAI;YAC7C,QAAQ,EAAE,0BAAQ,CAAC,UAAU;YAC7B,QAAQ,EAAE;gBACR,YAAY,EAAE,IAAI,CAAC,kBAAkB;aACtC;SACF,CAAC;QAEF,OAAO,IAAA,6CAAoB,EACzB,KAAK,EACL,cAA+D,EAC/D,IAAI,EACJ,IAAI,CAAC,QAAQ,IAAI,8BAA8B,EAC/C,mDAAsB,CACvB,CAAC;IACJ,CAAC;CACF;AA/CD,oEA+CC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ValidationContext } from "../types/validation-context.interface";
|
|
2
|
+
import { ValidationErrorData } from "../types/validation-error-data.interface";
|
|
3
|
+
import { BaseValidationSchema } from "./base.schema";
|
|
4
|
+
export declare class DateValidationSchema extends BaseValidationSchema<Date, DateValidationSchema> {
|
|
5
|
+
readonly type = "date";
|
|
6
|
+
private _start?;
|
|
7
|
+
private _end?;
|
|
8
|
+
start(start: Date): this;
|
|
9
|
+
end(end: Date): this;
|
|
10
|
+
protected _typeCheck(value: unknown, path: string[]): ValidationErrorData[];
|
|
11
|
+
protected _validateAgainstSchema(value: Date, context?: ValidationContext): ValidationErrorData[];
|
|
12
|
+
private _validateDateBetween;
|
|
13
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DateValidationSchema = void 0;
|
|
4
|
+
const delta_types_1 = require("@platecms/delta-types");
|
|
5
|
+
const rule_types_enum_1 = require("../enums/rule-types.enum");
|
|
6
|
+
const validate_with_function_1 = require("../helpers/validate-with-function");
|
|
7
|
+
const date_between_validation_rule_1 = require("../validation-rules/date-between.validation-rule");
|
|
8
|
+
const base_schema_1 = require("./base.schema");
|
|
9
|
+
class DateValidationSchema extends base_schema_1.BaseValidationSchema {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
this.type = "date";
|
|
13
|
+
}
|
|
14
|
+
start(start) {
|
|
15
|
+
this._start = start;
|
|
16
|
+
return this;
|
|
17
|
+
}
|
|
18
|
+
end(end) {
|
|
19
|
+
this._end = end;
|
|
20
|
+
return this;
|
|
21
|
+
}
|
|
22
|
+
_typeCheck(value, path) {
|
|
23
|
+
if (!(value instanceof Date)) {
|
|
24
|
+
return [
|
|
25
|
+
{
|
|
26
|
+
path,
|
|
27
|
+
message: this._message ?? "Value must be a valid date",
|
|
28
|
+
provided: value,
|
|
29
|
+
validationRule: {
|
|
30
|
+
ruleType: rule_types_enum_1.RuleType.VALUE_TYPE,
|
|
31
|
+
settings: { allowedTypes: [delta_types_1.ContentValueTypeNames.DATE] },
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
];
|
|
35
|
+
}
|
|
36
|
+
return [];
|
|
37
|
+
}
|
|
38
|
+
_validateAgainstSchema(value, context = {}) {
|
|
39
|
+
const path = context.path ?? [];
|
|
40
|
+
const errors = [];
|
|
41
|
+
const dateBetweenError = this._validateDateBetween(value, path);
|
|
42
|
+
if (dateBetweenError) {
|
|
43
|
+
errors.push(dateBetweenError);
|
|
44
|
+
}
|
|
45
|
+
return errors;
|
|
46
|
+
}
|
|
47
|
+
_validateDateBetween(value, path) {
|
|
48
|
+
if (this._start === undefined && this._end === undefined) {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
const validationRule = this._validationRule ?? {
|
|
52
|
+
ruleType: rule_types_enum_1.RuleType.DATE_BETWEEN,
|
|
53
|
+
settings: {
|
|
54
|
+
start: this._start,
|
|
55
|
+
end: this._end,
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
return (0, validate_with_function_1.validateWithFunction)(value, validationRule, path, this._message ?? "Date is outside allowed range", date_between_validation_rule_1.validateValueDateBetween);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
exports.DateValidationSchema = DateValidationSchema;
|
|
62
|
+
//# sourceMappingURL=date.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date.schema.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/schemas/date.schema.ts"],"names":[],"mappings":";;;AAAA,uDAA8D;AAC9D,8DAAoD;AACpD,8EAAyE;AAIzE,mGAG0D;AAC1D,+CAAqD;AAErD,MAAa,oBAAqB,SAAQ,kCAAgD;IAA1F;;QACkB,SAAI,GAAG,MAAM,CAAC;IAoEhC,CAAC;IAhEQ,KAAK,CAAC,KAAW;QACtB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,GAAG,CAAC,GAAS;QAClB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAES,UAAU,CAAC,KAAc,EAAE,IAAc;QACjD,IAAI,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC,EAAE,CAAC;YAC7B,OAAO;gBACL;oBACE,IAAI;oBACJ,OAAO,EAAE,IAAI,CAAC,QAAQ,IAAI,4BAA4B;oBACtD,QAAQ,EAAE,KAAK;oBACf,cAAc,EAAE;wBACd,QAAQ,EAAE,0BAAQ,CAAC,UAAU;wBAC7B,QAAQ,EAAE,EAAE,YAAY,EAAE,CAAC,mCAAqB,CAAC,IAAI,CAAC,EAAE;qBACzD;iBACF;aACF,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAES,sBAAsB,CAAC,KAAW,EAAE,UAA6B,EAAE;QAC3E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;QAChC,MAAM,MAAM,GAA0B,EAAE,CAAC;QAEzC,MAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAChE,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,oBAAoB,CAC1B,KAAW,EACX,IAAc;QAEd,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACzD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,IAAI;YAC7C,QAAQ,EAAE,0BAAQ,CAAC,YAAY;YAC/B,QAAQ,EAAE;gBACR,KAAK,EAAE,IAAI,CAAC,MAAM;gBAClB,GAAG,EAAE,IAAI,CAAC,IAAI;aACf;SACF,CAAC;QAEF,OAAO,IAAA,6CAAoB,EACzB,KAAK,EACL,cAAiE,EACjE,IAAI,EACJ,IAAI,CAAC,QAAQ,IAAI,+BAA+B,EAChD,uDAAwB,CACzB,CAAC;IACJ,CAAC;CACF;AArED,oDAqEC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ValidationContext } from "../types/validation-context.interface";
|
|
2
|
+
import { ValidationErrorData } from "../types/validation-error-data.interface";
|
|
3
|
+
import { BaseValidationSchema } from "./base.schema";
|
|
4
|
+
export declare class NumberValidationSchema extends BaseValidationSchema<number, NumberValidationSchema> {
|
|
5
|
+
readonly type = "number";
|
|
6
|
+
private _min?;
|
|
7
|
+
private _max?;
|
|
8
|
+
private _maxDecimals?;
|
|
9
|
+
min(min: number): this;
|
|
10
|
+
max(max: number): this;
|
|
11
|
+
maxDecimals(maxDecimals: number): this;
|
|
12
|
+
protected _typeCheck(value: unknown, path: string[]): ValidationErrorData[];
|
|
13
|
+
protected _validateAgainstSchema(value: number, context?: ValidationContext): ValidationErrorData[];
|
|
14
|
+
private _validateNumberBetween;
|
|
15
|
+
private _validateDecimalCount;
|
|
16
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NumberValidationSchema = void 0;
|
|
4
|
+
const delta_types_1 = require("@platecms/delta-types");
|
|
5
|
+
const rule_types_enum_1 = require("../enums/rule-types.enum");
|
|
6
|
+
const validate_with_function_1 = require("../helpers/validate-with-function");
|
|
7
|
+
const decimal_count_validation_rule_1 = require("../validation-rules/decimal-count.validation-rule");
|
|
8
|
+
const number_between_validation_rule_1 = require("../validation-rules/number-between.validation-rule");
|
|
9
|
+
const base_schema_1 = require("./base.schema");
|
|
10
|
+
class NumberValidationSchema extends base_schema_1.BaseValidationSchema {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments);
|
|
13
|
+
this.type = "number";
|
|
14
|
+
}
|
|
15
|
+
min(min) {
|
|
16
|
+
this._min = min;
|
|
17
|
+
return this;
|
|
18
|
+
}
|
|
19
|
+
max(max) {
|
|
20
|
+
this._max = max;
|
|
21
|
+
return this;
|
|
22
|
+
}
|
|
23
|
+
maxDecimals(maxDecimals) {
|
|
24
|
+
this._maxDecimals = maxDecimals;
|
|
25
|
+
return this;
|
|
26
|
+
}
|
|
27
|
+
_typeCheck(value, path) {
|
|
28
|
+
const numberValue = Number(value);
|
|
29
|
+
if (Number.isNaN(numberValue)) {
|
|
30
|
+
return [
|
|
31
|
+
{
|
|
32
|
+
path,
|
|
33
|
+
message: this._message ?? "Value must be a valid number",
|
|
34
|
+
provided: value,
|
|
35
|
+
validationRule: {
|
|
36
|
+
ruleType: rule_types_enum_1.RuleType.VALUE_TYPE,
|
|
37
|
+
settings: { allowedTypes: [delta_types_1.ContentValueTypeNames.NUMBER] },
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
];
|
|
41
|
+
}
|
|
42
|
+
return [];
|
|
43
|
+
}
|
|
44
|
+
_validateAgainstSchema(value, context = {}) {
|
|
45
|
+
const path = context.path ?? [];
|
|
46
|
+
const errors = [];
|
|
47
|
+
const numberBetweenError = this._validateNumberBetween(value, path);
|
|
48
|
+
if (numberBetweenError) {
|
|
49
|
+
errors.push(numberBetweenError);
|
|
50
|
+
}
|
|
51
|
+
const decimalCountError = this._validateDecimalCount(value, path);
|
|
52
|
+
if (decimalCountError) {
|
|
53
|
+
errors.push(decimalCountError);
|
|
54
|
+
}
|
|
55
|
+
return errors;
|
|
56
|
+
}
|
|
57
|
+
_validateNumberBetween(value, path) {
|
|
58
|
+
if (this._min === undefined && this._max === undefined) {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
const validationRule = this._validationRule ?? {
|
|
62
|
+
ruleType: rule_types_enum_1.RuleType.NUMBER_BETWEEN,
|
|
63
|
+
settings: {
|
|
64
|
+
min: this._min,
|
|
65
|
+
max: this._max,
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
return (0, validate_with_function_1.validateWithFunction)(value, validationRule, path, this._message ?? "Number is outside allowed range", number_between_validation_rule_1.validateValueNumberBetween);
|
|
69
|
+
}
|
|
70
|
+
_validateDecimalCount(value, path) {
|
|
71
|
+
if (this._maxDecimals === undefined) {
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
const validationRule = this._validationRule ?? {
|
|
75
|
+
ruleType: rule_types_enum_1.RuleType.DECIMAL_COUNT,
|
|
76
|
+
settings: {
|
|
77
|
+
max: this._maxDecimals,
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
return (0, validate_with_function_1.validateWithFunction)(value, validationRule, path, this._message ?? "Number has too many decimal places", decimal_count_validation_rule_1.validateValueDecimalCount);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
exports.NumberValidationSchema = NumberValidationSchema;
|
|
84
|
+
//# sourceMappingURL=number.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"number.schema.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/schemas/number.schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ValidationContext } from "../types/validation-context.interface";
|
|
2
|
+
import { ValidationErrorData } from "../types/validation-error-data.interface";
|
|
3
|
+
import { BaseValidationSchema } from "./base.schema";
|
|
4
|
+
export declare class StringValidationSchema extends BaseValidationSchema<string, StringValidationSchema> {
|
|
5
|
+
readonly type = "string";
|
|
6
|
+
private _format?;
|
|
7
|
+
format(fmt: string): StringValidationSchema;
|
|
8
|
+
protected _typeCheck(value: unknown, path: string[]): ValidationErrorData[];
|
|
9
|
+
protected _validateAgainstSchema(value: string, context?: ValidationContext): ValidationErrorData[];
|
|
10
|
+
private _validateStringFormat;
|
|
11
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StringValidationSchema = void 0;
|
|
4
|
+
const delta_types_1 = require("@platecms/delta-types");
|
|
5
|
+
const rule_types_enum_1 = require("../enums/rule-types.enum");
|
|
6
|
+
const validate_with_function_1 = require("../helpers/validate-with-function");
|
|
7
|
+
const string_format_validation_rule_1 = require("../validation-rules/string-format.validation-rule");
|
|
8
|
+
const base_schema_1 = require("./base.schema");
|
|
9
|
+
class StringValidationSchema extends base_schema_1.BaseValidationSchema {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
this.type = "string";
|
|
13
|
+
}
|
|
14
|
+
format(fmt) {
|
|
15
|
+
this._format = fmt;
|
|
16
|
+
return this;
|
|
17
|
+
}
|
|
18
|
+
_typeCheck(value, path) {
|
|
19
|
+
if (typeof value !== "string") {
|
|
20
|
+
return [
|
|
21
|
+
{
|
|
22
|
+
path,
|
|
23
|
+
message: this._message ?? "Value must be a string",
|
|
24
|
+
provided: value,
|
|
25
|
+
validationRule: {
|
|
26
|
+
ruleType: rule_types_enum_1.RuleType.VALUE_TYPE,
|
|
27
|
+
settings: { allowedTypes: [delta_types_1.ContentValueTypeNames.STRING] },
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
];
|
|
31
|
+
}
|
|
32
|
+
return [];
|
|
33
|
+
}
|
|
34
|
+
_validateAgainstSchema(value, context = {}) {
|
|
35
|
+
const errors = [];
|
|
36
|
+
const stringFormatError = this._validateStringFormat(value, context.path ?? []);
|
|
37
|
+
if (stringFormatError) {
|
|
38
|
+
errors.push(stringFormatError);
|
|
39
|
+
}
|
|
40
|
+
return errors;
|
|
41
|
+
}
|
|
42
|
+
_validateStringFormat(value, path) {
|
|
43
|
+
if (this._format === undefined && this._validationRule === undefined) {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
const validationRule = this._validationRule ?? {
|
|
47
|
+
ruleType: rule_types_enum_1.RuleType.STRING_FORMAT,
|
|
48
|
+
settings: {
|
|
49
|
+
allowedFormat: this._format,
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
return (0, validate_with_function_1.validateWithFunction)(value, validationRule, path, this._message ?? "String format validation failed", string_format_validation_rule_1.validateValueStringFormat);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.StringValidationSchema = StringValidationSchema;
|
|
56
|
+
//# sourceMappingURL=string.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string.schema.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/schemas/string.schema.ts"],"names":[],"mappings":";;;AAAA,uDAA8D;AAC9D,8DAAoD;AACpD,8EAAyE;AAIzE,qGAG2D;AAC3D,+CAAqD;AAErD,MAAa,sBAAuB,SAAQ,kCAAoD;IAAhG;;QACkB,SAAI,GAAG,QAAQ,CAAC;IA2DlC,CAAC;IAxDQ,MAAM,CAAC,GAAW;QACvB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAES,UAAU,CAAC,KAAc,EAAE,IAAc;QACjD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO;gBACL;oBACE,IAAI;oBACJ,OAAO,EAAE,IAAI,CAAC,QAAQ,IAAI,wBAAwB;oBAClD,QAAQ,EAAE,KAAK;oBACf,cAAc,EAAE;wBACd,QAAQ,EAAE,0BAAQ,CAAC,UAAU;wBAC7B,QAAQ,EAAE,EAAE,YAAY,EAAE,CAAC,mCAAqB,CAAC,MAAM,CAAC,EAAE;qBAC3D;iBACF;aACF,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAES,sBAAsB,CAAC,KAAa,EAAE,UAA6B,EAAE;QAC7E,MAAM,MAAM,GAA0B,EAAE,CAAC;QAEzC,MAAM,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAChF,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACjC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,qBAAqB,CAC3B,KAAa,EACb,IAAc;QAEd,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YACrE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,IAAI;YAC7C,QAAQ,EAAE,0BAAQ,CAAC,aAAa;YAChC,QAAQ,EAAE;gBACR,aAAa,EAAE,IAAI,CAAC,OAAQ;aAC7B;SACF,CAAC;QAEF,OAAO,IAAA,6CAAoB,EACzB,KAAK,EACL,cAAkE,EAClE,IAAI,EACJ,IAAI,CAAC,QAAQ,IAAI,iCAAiC,EAClD,yDAAyB,CAC1B,CAAC;IACJ,CAAC;CACF;AA5DD,wDA4DC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { PRN } from "@platecms/delta-plate-resource-notation";
|
|
1
2
|
import { AllowedValuesValidationRuleSettings } from "../validation-rules/allowed-values.validation-rule";
|
|
2
3
|
import { CountValidationRuleSettings } from "../validation-rules/count.validation-rule";
|
|
3
4
|
import { DateBetweenValidationRuleSettings } from "../validation-rules/date-between.validation-rule";
|
|
@@ -6,5 +7,4 @@ import { NumberBetweenValidationRuleSettings } from "../validation-rules/number-
|
|
|
6
7
|
import { RelatableContentTypesValidationRuleSettings } from "../validation-rules/relatable-content-types.validation-rule";
|
|
7
8
|
import { StringFormatValidationRuleSettings } from "../validation-rules/string-format.validation-rule";
|
|
8
9
|
import { ValueTypeValidationRuleSettings } from "../validation-rules/value-type.validation-rule";
|
|
9
|
-
import { PRN } from "@platecms/delta-plate-resource-notation";
|
|
10
10
|
export type ExistingContentValidationRulesSettings = AllowedValuesValidationRuleSettings | CountValidationRuleSettings | DateBetweenValidationRuleSettings | DecimalCountValidationRuleSettings | NumberBetweenValidationRuleSettings | RelatableContentTypesValidationRuleSettings<PRN> | StringFormatValidationRuleSettings | ValueTypeValidationRuleSettings;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ArrayValidationSchema } from "../schemas/array.schema";
|
|
2
|
+
import { DateValidationSchema } from "../schemas/date.schema";
|
|
3
|
+
import { ContentValueValidationSchema } from "../schemas/content-value.schema";
|
|
4
|
+
import { NumberValidationSchema } from "../schemas/number.schema";
|
|
5
|
+
import { StringValidationSchema } from "../schemas/string.schema";
|
|
6
|
+
export type ExistingValidationSchemas = ArrayValidationSchema<unknown> | ContentValueValidationSchema | DateValidationSchema | NumberValidationSchema | StringValidationSchema;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"existing-validation-schemas.type.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/types/existing-validation-schemas.type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-context.interface.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/types/validation-context.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-error-data.interface.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/types/validation-error-data.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-result.interface.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/types/validation-result.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ValidationContext } from "./validation-context.interface";
|
|
2
|
+
import { ValidationResult } from "./validation-result.interface";
|
|
3
|
+
export type SchemaType = "array" | "content-value" | "date" | "number" | "string" | "union";
|
|
4
|
+
export interface ValidationSchema<TType> {
|
|
5
|
+
type: SchemaType;
|
|
6
|
+
validate(value: unknown, context?: ValidationContext): ValidationResult;
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-schema.interface.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/types/validation-schema.interface.ts"],"names":[],"mappings":""}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { BaseValidationRule, ContentValidationResultType } from "./base.validation-rule";
|
|
2
|
-
import { RuleType } from "../types/rule-types.enum";
|
|
3
|
-
import { RuleInstance } from "../types/rule-instance.interface";
|
|
4
1
|
import { ContentValueType } from "@platecms/delta-types";
|
|
2
|
+
import { RuleInstance } from "../types/rule-instance.interface";
|
|
3
|
+
import { RuleType } from "../enums/rule-types.enum";
|
|
4
|
+
import { BaseValidationRule, ContentValidationResultType } from "./base.validation-rule";
|
|
5
|
+
export declare function validateValueAllowedValues(value: ContentValueType, ruleInstance: RuleInstance<AllowedValuesValidationRuleSettings>): ContentValidationResultType;
|
|
5
6
|
export declare const validateAllowedValues: <TRuleInstance extends RuleInstance<AllowedValuesValidationRuleSettings> = RuleInstance<AllowedValuesValidationRuleSettings>>(values: ContentValueType[], ruleInstance: TRuleInstance) => ContentValidationResultType[];
|
|
6
7
|
export declare class AllowedValuesValidationRule extends BaseValidationRule<AllowedValuesValidationRuleSettings> {
|
|
7
8
|
readonly ruleType: RuleType;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AllowedValuesValidationRule = exports.validateAllowedValues = void 0;
|
|
4
|
+
exports.validateValueAllowedValues = validateValueAllowedValues;
|
|
5
|
+
const delta_plate_resource_notation_1 = require("@platecms/delta-plate-resource-notation");
|
|
6
|
+
const validation_error_details_1 = require("../errors/validation-error-details");
|
|
7
|
+
const rule_types_enum_1 = require("../enums/rule-types.enum");
|
|
4
8
|
const base_validation_rule_1 = require("./base.validation-rule");
|
|
5
|
-
const rule_types_enum_1 = require("../types/rule-types.enum");
|
|
6
|
-
const content_validation_error_detail_1 = require("../errors/content-validation-error-detail");
|
|
7
9
|
const validation_rule_function_factory_1 = require("./validation-rule-function.factory");
|
|
8
|
-
const delta_plate_resource_notation_1 = require("@platecms/delta-plate-resource-notation");
|
|
9
10
|
function validateValueAllowedValues(value, ruleInstance) {
|
|
10
11
|
const valid = ruleInstance.settings.allowedValues.some((allowedValue) => {
|
|
11
12
|
if (value instanceof delta_plate_resource_notation_1.PRN) {
|
|
@@ -17,7 +18,7 @@ function validateValueAllowedValues(value, ruleInstance) {
|
|
|
17
18
|
return value === allowedValue;
|
|
18
19
|
});
|
|
19
20
|
if (!valid) {
|
|
20
|
-
return new
|
|
21
|
+
return new validation_error_details_1.ValidationErrorDetails(`The provided value must be one of ${ruleInstance.settings.allowedValues.join(", ")}`, ruleInstance);
|
|
21
22
|
}
|
|
22
23
|
return true;
|
|
23
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"allowed-values.validation-rule.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/validation-rules/allowed-values.validation-rule.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"allowed-values.validation-rule.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/validation-rules/allowed-values.validation-rule.ts"],"names":[],"mappings":";;;AAQA,gEAyBC;AAjCD,2FAA8D;AAE9D,iFAA4E;AAE5E,8DAAoD;AACpD,iEAAyF;AACzF,yFAAyF;AAEzF,SAAgB,0BAA0B,CACxC,KAAuB,EACvB,YAA+D;IAE/D,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE;QACtE,IAAI,KAAK,YAAY,mCAAG,EAAE,CAAC;YACzB,OAAO,YAAY,YAAY,mCAAG,IAAI,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YAC1B,OAAO,YAAY,YAAY,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,KAAK,YAAY,CAAC,OAAO,EAAE,CAAC;QACpF,CAAC;QAED,OAAO,KAAK,KAAK,YAAY,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,iDAAsB,CAE/B,qCAAqC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EACrF,YAAY,CACb,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAGY,QAAA,qBAAqB,GAAG,IAAA,sEAAmC,EAAC,0BAA0B,CAAC,CAAC;AAMrG,MAAa,2BAA4B,SAAQ,yCAAuD;IAAxG;;QACkB,aAAQ,GAAa,0BAAQ,CAAC,cAAc,CAAC;IAK/D,CAAC;IAHiB,QAAQ,CAAC,MAA0B;QACjD,OAAO,IAAA,6BAAqB,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;CACF;AAND,kEAMC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { RuleType } from "../types/rule-types.enum";
|
|
2
|
-
import { ContentValidationErrorDetail } from "../errors/content-validation-error-detail";
|
|
3
|
-
import { RuleInstance } from "../types/rule-instance.interface";
|
|
4
1
|
import { PRN } from "@platecms/delta-plate-resource-notation";
|
|
5
2
|
import { ContentValueType } from "@platecms/delta-types";
|
|
6
|
-
|
|
3
|
+
import { ValidationErrorDetails } from "../errors/validation-error-details";
|
|
4
|
+
import { RuleInstance } from "../types/rule-instance.interface";
|
|
5
|
+
import { RuleType } from "../enums/rule-types.enum";
|
|
6
|
+
export type ContentValidationResultType<TRuleInstance extends RuleInstance<unknown> = RuleInstance<unknown>> = ValidationErrorDetails<TRuleInstance> | true | null;
|
|
7
7
|
export declare abstract class BaseValidationRule<TSettings> implements RuleInstance<TSettings> {
|
|
8
8
|
readonly prn: PRN;
|
|
9
9
|
readonly settings: TSettings;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { BaseValidationRule, ContentValidationResultType } from "./base.validation-rule";
|
|
2
|
-
import { RuleType } from "../types/rule-types.enum";
|
|
3
|
-
import { RuleInstance } from "../types/rule-instance.interface";
|
|
4
1
|
import { PRN } from "@platecms/delta-plate-resource-notation";
|
|
5
2
|
import { ContentValueType } from "@platecms/delta-types";
|
|
6
|
-
|
|
3
|
+
import { RuleInstance } from "../types/rule-instance.interface";
|
|
4
|
+
import { RuleType } from "../enums/rule-types.enum";
|
|
5
|
+
import { BaseValidationRule, ContentValidationResultType } from "./base.validation-rule";
|
|
6
|
+
export declare function validateValuesCount<T>(values: T[], ruleInstance: RuleInstance<CountValidationRuleSettings>): ContentValidationResultType;
|
|
7
|
+
export declare function validateCount(value: ContentValueType[], ruleInstance: RuleInstance<CountValidationRuleSettings>): ContentValidationResultType[];
|
|
7
8
|
export declare class CountValidationRule extends BaseValidationRule<CountValidationRuleSettings> {
|
|
8
9
|
readonly ruleType: RuleType;
|
|
9
10
|
constructor(prn: PRN, settings: CountValidationRuleSettings);
|