@platecms/delta-validation 0.3.1 → 0.4.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/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
package/README.md
CHANGED
|
@@ -134,7 +134,7 @@ request = {
|
|
|
134
134
|
|
|
135
135
|
# Error messages
|
|
136
136
|
|
|
137
|
-
Each Validation Rule contains a validate method that can generate a
|
|
137
|
+
Each Validation Rule contains a validate method that can generate a ValidationErrorDetails (shown in the example above in
|
|
138
138
|
the details section) when it fails and is applicable. These messages provide the user with feedback what went wrong
|
|
139
139
|
during the validation.
|
|
140
140
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@platecms/delta-validation",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "This package contains the validation system for Plate.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"publishConfig": {
|
|
@@ -17,11 +17,10 @@
|
|
|
17
17
|
"src/**/*"
|
|
18
18
|
],
|
|
19
19
|
"peerDependencies": {
|
|
20
|
-
"@platecms/delta-cast": "
|
|
21
|
-
"@platecms/delta-plate-resource-notation": "
|
|
22
|
-
"@platecms/delta-types": "
|
|
20
|
+
"@platecms/delta-cast": "0.4.0",
|
|
21
|
+
"@platecms/delta-plate-resource-notation": "0.4.0",
|
|
22
|
+
"@platecms/delta-types": "0.4.0",
|
|
23
23
|
"class-transformer": "0.5.1",
|
|
24
|
-
"class-validator": "0.14.1",
|
|
25
24
|
"reflect-metadata": "0.2.2",
|
|
26
25
|
"tslib": "2.8.1"
|
|
27
26
|
},
|
package/src/index.d.ts
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
export * from "./lib/validation-
|
|
2
|
-
export * from "./lib/errors/validation-error
|
|
3
|
-
export * from "./lib/validation
|
|
1
|
+
export * from "./lib/errors/invalid-validation-arguments.error";
|
|
2
|
+
export * from "./lib/errors/invalid-validation-rule-settings.error";
|
|
3
|
+
export * from "./lib/errors/validation.error";
|
|
4
|
+
export * from "./lib/errors/validation-error-details";
|
|
4
5
|
export * from "./lib/helpers/deserialize-validation-rule";
|
|
5
6
|
export * from "./lib/validation-rules/number-between.validation-rule";
|
|
6
|
-
export * from "./lib/types/existing-content-validation-rules-settings.type";
|
|
7
|
-
export * from "./lib/
|
|
8
|
-
export * from "./lib/
|
|
9
|
-
export * from "./lib/types/
|
|
7
|
+
export type * from "./lib/types/existing-content-validation-rules-settings.type";
|
|
8
|
+
export * from "./lib/helpers/rule-to-schema";
|
|
9
|
+
export * from "./lib/helpers/schema-builder";
|
|
10
|
+
export type * from "./lib/types/existing-validation-schemas.type";
|
|
11
|
+
export type * from "./lib/types/validation-error-data.interface";
|
|
12
|
+
export type * from "./lib/types/validation-result.interface";
|
|
13
|
+
export type * from "./lib/types/validation-context.interface";
|
|
14
|
+
export type * from "./lib/types/rule-instance.interface";
|
|
15
|
+
export * from "./lib/enums/rule-types.enum";
|
|
16
|
+
export type * from "./lib/types/existing-content-validation-rules.type";
|
|
10
17
|
export * from "./lib/validation-rules/allowed-values.validation-rule";
|
|
11
|
-
export * from "./lib/validation-rules/
|
|
12
|
-
export * from "./lib/
|
|
18
|
+
export * from "./lib/validation-rules/base.validation-rule";
|
|
19
|
+
export * from "./lib/validation-rules/count.validation-rule";
|
|
13
20
|
export * from "./lib/validation-rules/date-between.validation-rule";
|
|
14
|
-
export * from "./lib/validation-rules/
|
|
15
|
-
export * from "./lib/
|
|
16
|
-
export * from "./lib/
|
|
21
|
+
export * from "./lib/validation-rules/decimal-count.validation-rule";
|
|
22
|
+
export * from "./lib/validation-rules/number-between.validation-rule";
|
|
23
|
+
export * from "./lib/validation-rules/relatable-content-types.validation-rule";
|
|
17
24
|
export * from "./lib/validation-rules/string-format.validation-rule";
|
|
18
|
-
export * from "./lib/types/existing-content-validation-rules.type";
|
|
19
|
-
export * from "./lib/errors/validation-error";
|
|
20
|
-
export * from "./lib/types/rule-instance.interface";
|
|
21
25
|
export * from "./lib/validation-rules/validation-rule-function.factory";
|
|
22
|
-
export * from "./lib/validation-rules/
|
|
23
|
-
export * from "./lib/invalid-content-validation.error";
|
|
24
|
-
export * from "./lib/content-validation-error.serializer";
|
|
25
|
-
export * from "./lib/invalid-content-validation-error.error";
|
|
26
|
-
export * from "./lib/invalid-content-validation-validate-args.error";
|
|
26
|
+
export * from "./lib/validation-rules/value-type.validation-rule";
|
package/src/index.js
CHANGED
|
@@ -1,30 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
|
-
tslib_1.__exportStar(require("./lib/validation-
|
|
5
|
-
tslib_1.__exportStar(require("./lib/errors/validation-error
|
|
6
|
-
tslib_1.__exportStar(require("./lib/validation
|
|
4
|
+
tslib_1.__exportStar(require("./lib/errors/invalid-validation-arguments.error"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./lib/errors/invalid-validation-rule-settings.error"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./lib/errors/validation.error"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./lib/errors/validation-error-details"), exports);
|
|
7
8
|
tslib_1.__exportStar(require("./lib/helpers/deserialize-validation-rule"), exports);
|
|
8
9
|
tslib_1.__exportStar(require("./lib/validation-rules/number-between.validation-rule"), exports);
|
|
9
|
-
tslib_1.__exportStar(require("./lib/
|
|
10
|
-
tslib_1.__exportStar(require("./lib/
|
|
11
|
-
tslib_1.__exportStar(require("./lib/
|
|
12
|
-
tslib_1.__exportStar(require("./lib/types/unknown-validation-error-target.interface"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./lib/helpers/rule-to-schema"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./lib/helpers/schema-builder"), exports);
|
|
12
|
+
tslib_1.__exportStar(require("./lib/enums/rule-types.enum"), exports);
|
|
13
13
|
tslib_1.__exportStar(require("./lib/validation-rules/allowed-values.validation-rule"), exports);
|
|
14
|
-
tslib_1.__exportStar(require("./lib/validation-rules/
|
|
15
|
-
tslib_1.__exportStar(require("./lib/
|
|
14
|
+
tslib_1.__exportStar(require("./lib/validation-rules/base.validation-rule"), exports);
|
|
15
|
+
tslib_1.__exportStar(require("./lib/validation-rules/count.validation-rule"), exports);
|
|
16
16
|
tslib_1.__exportStar(require("./lib/validation-rules/date-between.validation-rule"), exports);
|
|
17
|
-
tslib_1.__exportStar(require("./lib/validation-rules/
|
|
18
|
-
tslib_1.__exportStar(require("./lib/
|
|
19
|
-
tslib_1.__exportStar(require("./lib/
|
|
17
|
+
tslib_1.__exportStar(require("./lib/validation-rules/decimal-count.validation-rule"), exports);
|
|
18
|
+
tslib_1.__exportStar(require("./lib/validation-rules/number-between.validation-rule"), exports);
|
|
19
|
+
tslib_1.__exportStar(require("./lib/validation-rules/relatable-content-types.validation-rule"), exports);
|
|
20
20
|
tslib_1.__exportStar(require("./lib/validation-rules/string-format.validation-rule"), exports);
|
|
21
|
-
tslib_1.__exportStar(require("./lib/types/existing-content-validation-rules.type"), exports);
|
|
22
|
-
tslib_1.__exportStar(require("./lib/errors/validation-error"), exports);
|
|
23
|
-
tslib_1.__exportStar(require("./lib/types/rule-instance.interface"), exports);
|
|
24
21
|
tslib_1.__exportStar(require("./lib/validation-rules/validation-rule-function.factory"), exports);
|
|
25
|
-
tslib_1.__exportStar(require("./lib/validation-rules/
|
|
26
|
-
tslib_1.__exportStar(require("./lib/invalid-content-validation.error"), exports);
|
|
27
|
-
tslib_1.__exportStar(require("./lib/content-validation-error.serializer"), exports);
|
|
28
|
-
tslib_1.__exportStar(require("./lib/invalid-content-validation-error.error"), exports);
|
|
29
|
-
tslib_1.__exportStar(require("./lib/invalid-content-validation-validate-args.error"), exports);
|
|
22
|
+
tslib_1.__exportStar(require("./lib/validation-rules/value-type.validation-rule"), exports);
|
|
30
23
|
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/validation/src/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/validation/src/index.ts"],"names":[],"mappings":";;;AAAA,0FAAgE;AAChE,8FAAoE;AACpE,wEAA8C;AAC9C,gFAAsD;AACtD,oFAA0D;AAC1D,gGAAsE;AAEtE,uEAA6C;AAC7C,uEAA6C;AAM7C,sEAA4C;AAE5C,gGAAsE;AACtE,sFAA4D;AAC5D,uFAA6D;AAC7D,8FAAoE;AACpE,+FAAqE;AACrE,gGAAsE;AACtE,yGAA+E;AAC/E,+FAAqE;AACrE,kGAAwE;AACxE,4FAAkE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule-types.enum.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/
|
|
1
|
+
{"version":3,"file":"rule-types.enum.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/enums/rule-types.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,QASX;AATD,WAAY,QAAQ;IAClB,6CAAiC,CAAA;IACjC,2BAAe,CAAA;IACf,yCAA6B,CAAA;IAC7B,2CAA+B,CAAA;IAC/B,6CAAiC,CAAA;IACjC,+DAAmD,CAAA;IACnD,2CAA+B,CAAA;IAC/B,qCAAyB,CAAA;AAC3B,CAAC,EATW,QAAQ,wBAAR,QAAQ,QASnB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InvalidValidationArgumentsError = void 0;
|
|
4
|
+
class InvalidValidationArgumentsError extends Error {
|
|
5
|
+
}
|
|
6
|
+
exports.InvalidValidationArgumentsError = InvalidValidationArgumentsError;
|
|
7
|
+
//# sourceMappingURL=invalid-validation-arguments.error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invalid-validation-arguments.error.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/errors/invalid-validation-arguments.error.ts"],"names":[],"mappings":";;;AAAA,MAAa,+BAAgC,SAAQ,KAAK;CAAG;AAA7D,0EAA6D"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InvalidValidationRuleSettingsError = void 0;
|
|
4
|
+
class InvalidValidationRuleSettingsError extends Error {
|
|
5
|
+
}
|
|
6
|
+
exports.InvalidValidationRuleSettingsError = InvalidValidationRuleSettingsError;
|
|
7
|
+
//# sourceMappingURL=invalid-validation-rule-settings.error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invalid-validation-rule-settings.error.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/errors/invalid-validation-rule-settings.error.ts"],"names":[],"mappings":";;;AAAA,MAAa,kCAAmC,SAAQ,KAAK;CAAG;AAAhE,gFAAgE"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { RuleInstance } from "../types/rule-instance.interface";
|
|
2
|
+
export declare class ValidationErrorDetails<TRuleInstance extends RuleInstance<unknown>> {
|
|
3
|
+
readonly message: string;
|
|
4
|
+
readonly validationRule: TRuleInstance;
|
|
5
|
+
constructor(message: string, validationRule: TRuleInstance);
|
|
6
|
+
}
|
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.ValidationErrorDetails = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const class_transformer_1 = require("class-transformer");
|
|
6
|
-
const validation_error_detail_1 = require("./validation-error-detail");
|
|
7
6
|
const deserialize_validation_rule_1 = require("../helpers/deserialize-validation-rule");
|
|
8
|
-
class
|
|
7
|
+
class ValidationErrorDetails {
|
|
9
8
|
constructor(message, validationRule) {
|
|
10
|
-
|
|
9
|
+
this.message = message;
|
|
11
10
|
this.validationRule = validationRule;
|
|
12
11
|
}
|
|
13
12
|
}
|
|
14
|
-
exports.
|
|
13
|
+
exports.ValidationErrorDetails = ValidationErrorDetails;
|
|
15
14
|
tslib_1.__decorate([
|
|
16
15
|
(0, class_transformer_1.Transform)((validationRule) => (0, deserialize_validation_rule_1.deserializeValidationRule)(validationRule)),
|
|
17
16
|
tslib_1.__metadata("design:type", Object)
|
|
18
|
-
],
|
|
19
|
-
//# sourceMappingURL=
|
|
17
|
+
], ValidationErrorDetails.prototype, "validationRule", void 0);
|
|
18
|
+
//# sourceMappingURL=validation-error-details.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation-error-details.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/errors/validation-error-details.ts"],"names":[],"mappings":";;;;AAAA,yDAA8C;AAC9C,wFAAmF;AAGnF,MAAa,sBAAsB;IAMjC,YAAmB,OAAe,EAAE,cAA6B;QAC/D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;CACF;AAVD,wDAUC;AANiB;IADf,IAAA,6BAAS,EAAC,CAAC,cAAuB,EAAE,EAAE,CAAC,IAAA,uDAAyB,EAAC,cAAc,CAAC,CAAC;;8DACpC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { RuleInstance } from "../types/rule-instance.interface";
|
|
2
|
+
import { ValidationErrorData } from "../types/validation-error-data.interface";
|
|
3
|
+
export declare class ValidationError<TSettings extends object = object> extends Error implements ValidationErrorData<TSettings> {
|
|
4
|
+
readonly path: string[];
|
|
5
|
+
readonly validationRule: RuleInstance<TSettings>;
|
|
6
|
+
readonly provided: unknown;
|
|
7
|
+
constructor(path: string[], message: string, validationRule: RuleInstance<TSettings>, provided: unknown);
|
|
8
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ValidationError = void 0;
|
|
4
|
+
class ValidationError extends Error {
|
|
5
|
+
constructor(path, message, validationRule, provided) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.path = path;
|
|
8
|
+
this.validationRule = validationRule;
|
|
9
|
+
this.provided = provided;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.ValidationError = ValidationError;
|
|
13
|
+
//# sourceMappingURL=validation.error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.error.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/errors/validation.error.ts"],"names":[],"mappings":";;;AAGA,MAAa,eACX,SAAQ,KAAK;IAOb,YAAmB,IAAc,EAAE,OAAe,EAAE,cAAuC,EAAE,QAAiB;QAC5G,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAdD,0CAcC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.deserializeValidationRule = deserializeValidationRule;
|
|
4
|
+
const rule_types_enum_1 = require("../enums/rule-types.enum");
|
|
4
5
|
const allowed_values_validation_rule_1 = require("../validation-rules/allowed-values.validation-rule");
|
|
5
6
|
const count_validation_rule_1 = require("../validation-rules/count.validation-rule");
|
|
6
7
|
const date_between_validation_rule_1 = require("../validation-rules/date-between.validation-rule");
|
|
@@ -9,7 +10,6 @@ const number_between_validation_rule_1 = require("../validation-rules/number-bet
|
|
|
9
10
|
const relatable_content_types_validation_rule_1 = require("../validation-rules/relatable-content-types.validation-rule");
|
|
10
11
|
const string_format_validation_rule_1 = require("../validation-rules/string-format.validation-rule");
|
|
11
12
|
const value_type_validation_rule_1 = require("../validation-rules/value-type.validation-rule");
|
|
12
|
-
const rule_types_enum_1 = require("../types/rule-types.enum");
|
|
13
13
|
function deserializeValidationRule(input) {
|
|
14
14
|
if (typeof input !== "object" || input == null) {
|
|
15
15
|
throw new Error(`The input is not an object or is null. Input: '${JSON.stringify(input)}'`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserialize-validation-rule.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/helpers/deserialize-validation-rule.ts"],"names":[],"mappings":";;AAoCA,8DAyDC;
|
|
1
|
+
{"version":3,"file":"deserialize-validation-rule.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/helpers/deserialize-validation-rule.ts"],"names":[],"mappings":";;AAoCA,8DAyDC;AA3FD,8DAAoD;AACpD,uGAG4D;AAC5D,qFAA6G;AAC7G,mGAG0D;AAC1D,qGAG2D;AAC3D,uGAG4D;AAC5D,yHAGqE;AACrE,qGAG2D;AAC3D,+FAGwD;AAKxD,SAAgB,yBAAyB,CAAC,KAAc;IACtD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,kDAAkD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9F,CAAC;IAED,IAAI,KAAK,CAAC,OAAuB,CAAC,IAAI,IAAI,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,0DAA0D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtG,CAAC;IAGD,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAuB,CAAmC,CAAC;IAE3F,QAAQ,iBAAiB,CAAC,QAAQ,EAAE,CAAC;QACnC,KAAK,0BAAQ,CAAC,cAAc;YAC1B,OAAO,IAAI,4DAA2B,CACpC,iBAAiB,CAAC,GAAG,EACrB,iBAAiB,CAAC,QAA+C,CAClE,CAAC;QACJ,KAAK,0BAAQ,CAAC,KAAK;YACjB,OAAO,IAAI,2CAAmB,CAAC,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,CAAC,QAAuC,CAAC,CAAC;QACnH,KAAK,0BAAQ,CAAC,YAAY;YACxB,OAAO,IAAI,wDAAyB,CAClC,iBAAiB,CAAC,GAAG,EACrB,iBAAiB,CAAC,QAA6C,CAChE,CAAC;QACJ,KAAK,0BAAQ,CAAC,aAAa;YACzB,OAAO,IAAI,0DAA0B,CACnC,iBAAiB,CAAC,GAAG,EACrB,iBAAiB,CAAC,QAA8C,CACjE,CAAC;QACJ,KAAK,0BAAQ,CAAC,cAAc;YAC1B,OAAO,IAAI,4DAA2B,CACpC,iBAAiB,CAAC,GAAG,EACrB,iBAAiB,CAAC,QAA+C,CAClE,CAAC;QACJ,KAAK,0BAAQ,CAAC,uBAAuB;YACnC,OAAO,IAAI,6EAAmC,CAC5C,iBAAiB,CAAC,GAAG,EACrB,iBAAiB,CAAC,QAA4D,CAC/E,CAAC;QACJ,KAAK,0BAAQ,CAAC,aAAa;YACzB,OAAO,IAAI,0DAA0B,CACnC,iBAAiB,CAAC,GAAG,EACrB,iBAAiB,CAAC,QAA8C,CACjE,CAAC;QACJ,KAAK,0BAAQ,CAAC,UAAU;YACtB,OAAO,IAAI,oDAAuB,CAChC,iBAAiB,CAAC,GAAG,EACrB,iBAAiB,CAAC,QAA2C,CAC9D,CAAC;QACJ;YACE,MAAM,IAAI,KAAK,CACb,iCACE,iBAAiB,CAAC,QACpB,WAAW,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,CAC/C,CAAC;IACN,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ContentValueType } from "@platecms/delta-types";
|
|
2
|
+
import { RuleInstance } from "../types/rule-instance.interface";
|
|
3
|
+
import { ArrayValidationSchema } from "../schemas/array.schema";
|
|
4
|
+
export declare function ruleToSchema(ruleInstance: RuleInstance<unknown>): ArrayValidationSchema<ContentValueType>;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ruleToSchema = ruleToSchema;
|
|
4
|
+
const rule_types_enum_1 = require("../enums/rule-types.enum");
|
|
5
|
+
const array_schema_1 = require("../schemas/array.schema");
|
|
6
|
+
const content_value_schema_1 = require("../schemas/content-value.schema");
|
|
7
|
+
const string_schema_1 = require("../schemas/string.schema");
|
|
8
|
+
const number_schema_1 = require("../schemas/number.schema");
|
|
9
|
+
const date_schema_1 = require("../schemas/date.schema");
|
|
10
|
+
function ruleToSchema(ruleInstance) {
|
|
11
|
+
switch (ruleInstance.ruleType) {
|
|
12
|
+
case rule_types_enum_1.RuleType.ALLOWED_VALUES: {
|
|
13
|
+
const settings = ruleInstance.settings;
|
|
14
|
+
return new array_schema_1.ArrayValidationSchema().of(new content_value_schema_1.ContentValueValidationSchema(ruleInstance).allowedValues(settings.allowedValues));
|
|
15
|
+
}
|
|
16
|
+
case rule_types_enum_1.RuleType.COUNT: {
|
|
17
|
+
const countSettings = ruleInstance.settings;
|
|
18
|
+
return new array_schema_1.ArrayValidationSchema(ruleInstance)
|
|
19
|
+
.min(countSettings.min ?? 0)
|
|
20
|
+
.max(countSettings.max ?? 0);
|
|
21
|
+
}
|
|
22
|
+
case rule_types_enum_1.RuleType.STRING_FORMAT: {
|
|
23
|
+
const formatSettings = ruleInstance.settings;
|
|
24
|
+
return new array_schema_1.ArrayValidationSchema().of(new string_schema_1.StringValidationSchema(ruleInstance).format(formatSettings.allowedFormat));
|
|
25
|
+
}
|
|
26
|
+
case rule_types_enum_1.RuleType.NUMBER_BETWEEN: {
|
|
27
|
+
const numberSettings = ruleInstance.settings;
|
|
28
|
+
const numberSchema = new number_schema_1.NumberValidationSchema(ruleInstance);
|
|
29
|
+
if (numberSettings.min !== undefined) {
|
|
30
|
+
numberSchema.min(numberSettings.min);
|
|
31
|
+
}
|
|
32
|
+
if (numberSettings.max !== undefined) {
|
|
33
|
+
numberSchema.max(numberSettings.max);
|
|
34
|
+
}
|
|
35
|
+
return new array_schema_1.ArrayValidationSchema().of(numberSchema);
|
|
36
|
+
}
|
|
37
|
+
case rule_types_enum_1.RuleType.DATE_BETWEEN: {
|
|
38
|
+
const dateSettings = ruleInstance.settings;
|
|
39
|
+
const dateSchema = new date_schema_1.DateValidationSchema(ruleInstance);
|
|
40
|
+
if (dateSettings.start) {
|
|
41
|
+
dateSchema.start(dateSettings.start);
|
|
42
|
+
}
|
|
43
|
+
if (dateSettings.end) {
|
|
44
|
+
dateSchema.end(dateSettings.end);
|
|
45
|
+
}
|
|
46
|
+
return new array_schema_1.ArrayValidationSchema().of(dateSchema);
|
|
47
|
+
}
|
|
48
|
+
case rule_types_enum_1.RuleType.DECIMAL_COUNT: {
|
|
49
|
+
const decimalSettings = ruleInstance.settings;
|
|
50
|
+
return new array_schema_1.ArrayValidationSchema().of(new number_schema_1.NumberValidationSchema(ruleInstance).maxDecimals(decimalSettings.max));
|
|
51
|
+
}
|
|
52
|
+
case rule_types_enum_1.RuleType.VALUE_TYPE: {
|
|
53
|
+
const valueTypeSettings = ruleInstance.settings;
|
|
54
|
+
return new array_schema_1.ArrayValidationSchema().of(new content_value_schema_1.ContentValueValidationSchema(ruleInstance).allowedValueTypes(valueTypeSettings.allowedTypes));
|
|
55
|
+
}
|
|
56
|
+
case rule_types_enum_1.RuleType.RELATABLE_CONTENT_TYPES: {
|
|
57
|
+
const relatableSettings = ruleInstance.settings;
|
|
58
|
+
return new array_schema_1.ArrayValidationSchema().of(new content_value_schema_1.ContentValueValidationSchema(ruleInstance).allowedContentTypes(relatableSettings.allowedContentTypes));
|
|
59
|
+
}
|
|
60
|
+
default: {
|
|
61
|
+
return new array_schema_1.ArrayValidationSchema();
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=rule-to-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-to-schema.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/helpers/rule-to-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ArrayValidationSchema } from "../schemas/array.schema";
|
|
2
|
+
import { ContentValueValidationSchema } from "../schemas/content-value.schema";
|
|
3
|
+
import { DateValidationSchema } from "../schemas/date.schema";
|
|
4
|
+
import { NumberValidationSchema } from "../schemas/number.schema";
|
|
5
|
+
import { StringValidationSchema } from "../schemas/string.schema";
|
|
6
|
+
export declare class SchemaBuilder {
|
|
7
|
+
static string(): StringValidationSchema;
|
|
8
|
+
static number(): NumberValidationSchema;
|
|
9
|
+
static date(): DateValidationSchema;
|
|
10
|
+
static array<T>(): ArrayValidationSchema<T>;
|
|
11
|
+
static contentValue(): ContentValueValidationSchema;
|
|
12
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SchemaBuilder = void 0;
|
|
4
|
+
const array_schema_1 = require("../schemas/array.schema");
|
|
5
|
+
const content_value_schema_1 = require("../schemas/content-value.schema");
|
|
6
|
+
const date_schema_1 = require("../schemas/date.schema");
|
|
7
|
+
const number_schema_1 = require("../schemas/number.schema");
|
|
8
|
+
const string_schema_1 = require("../schemas/string.schema");
|
|
9
|
+
class SchemaBuilder {
|
|
10
|
+
static string() {
|
|
11
|
+
return new string_schema_1.StringValidationSchema();
|
|
12
|
+
}
|
|
13
|
+
static number() {
|
|
14
|
+
return new number_schema_1.NumberValidationSchema();
|
|
15
|
+
}
|
|
16
|
+
static date() {
|
|
17
|
+
return new date_schema_1.DateValidationSchema();
|
|
18
|
+
}
|
|
19
|
+
static array() {
|
|
20
|
+
return new array_schema_1.ArrayValidationSchema();
|
|
21
|
+
}
|
|
22
|
+
static contentValue() {
|
|
23
|
+
return new content_value_schema_1.ContentValueValidationSchema();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.SchemaBuilder = SchemaBuilder;
|
|
27
|
+
//# sourceMappingURL=schema-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-builder.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/helpers/schema-builder.ts"],"names":[],"mappings":";;;AAAA,0DAAgE;AAChE,0EAA+E;AAC/E,wDAA8D;AAC9D,4DAAkE;AAClE,4DAAkE;AAGlE,MAAa,aAAa;IACjB,MAAM,CAAC,MAAM;QAClB,OAAO,IAAI,sCAAsB,EAAE,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,MAAM;QAClB,OAAO,IAAI,sCAAsB,EAAE,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,IAAI;QAChB,OAAO,IAAI,kCAAoB,EAAE,CAAC;IACpC,CAAC;IAEM,MAAM,CAAC,KAAK;QACjB,OAAO,IAAI,oCAAqB,EAAK,CAAC;IACxC,CAAC;IAEM,MAAM,CAAC,YAAY;QACxB,OAAO,IAAI,mDAA4B,EAAE,CAAC;IAC5C,CAAC;CACF;AApBD,sCAoBC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { RuleInstance } from "../types/rule-instance.interface";
|
|
2
|
+
import { ValidationErrorData } from "../types/validation-error-data.interface";
|
|
3
|
+
import { ContentValidationResultType } from "../validation-rules/base.validation-rule";
|
|
4
|
+
export declare function validateWithFunction<TSettings extends object, TType>(valueOrValues: TType, validationRule: RuleInstance<TSettings>, path: string[], fallbackErrorMessage: string, validationFunction: (input: TType, validationRule: RuleInstance<TSettings>) => ContentValidationResultType): ValidationErrorData<TSettings> | null;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateWithFunction = validateWithFunction;
|
|
4
|
+
const validation_error_details_1 = require("../errors/validation-error-details");
|
|
5
|
+
function validateWithFunctionInternal(value, validationRule, path, fallbackErrorMessage, validationFunction) {
|
|
6
|
+
let validationResult;
|
|
7
|
+
try {
|
|
8
|
+
validationResult = validationFunction(value, validationRule);
|
|
9
|
+
}
|
|
10
|
+
catch (error) {
|
|
11
|
+
return {
|
|
12
|
+
path,
|
|
13
|
+
message: error instanceof Error ? error.message : fallbackErrorMessage,
|
|
14
|
+
provided: value,
|
|
15
|
+
validationRule,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
if (validationResult === true || validationResult === null) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
path,
|
|
23
|
+
message: validationResult instanceof validation_error_details_1.ValidationErrorDetails ? validationResult.message : fallbackErrorMessage,
|
|
24
|
+
provided: value,
|
|
25
|
+
validationRule,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
function validateWithFunction(valueOrValues, validationRule, path, fallbackErrorMessage, validationFunction) {
|
|
29
|
+
return validateWithFunctionInternal(valueOrValues, validationRule, path, fallbackErrorMessage, validationFunction);
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=validate-with-function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-with-function.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/helpers/validate-with-function.ts"],"names":[],"mappings":";;AAoCA,oDAQC;AA5CD,iFAA4E;AAK5E,SAAS,4BAA4B,CACnC,KAAa,EACb,cAAuC,EACvC,IAAc,EACd,oBAA4B,EAC5B,kBAA2G;IAE3G,IAAI,gBAA6C,CAAC;IAClD,IAAI,CAAC;QACH,gBAAgB,GAAG,kBAAkB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IAC/D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,IAAI;YACJ,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB;YACtE,QAAQ,EAAE,KAAK;YACf,cAAc;SACf,CAAC;IACJ,CAAC;IAED,IAAI,gBAAgB,KAAK,IAAI,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;QAC3D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,IAAI;QACJ,OAAO,EAAE,gBAAgB,YAAY,iDAAsB,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB;QAC7G,QAAQ,EAAE,KAAK;QACf,cAAc;KACf,CAAC;AACJ,CAAC;AAED,SAAgB,oBAAoB,CAClC,aAAoB,EACpB,cAAuC,EACvC,IAAc,EACd,oBAA4B,EAC5B,kBAA0G;IAE1G,OAAO,4BAA4B,CAAC,aAAa,EAAE,cAAc,EAAE,IAAI,EAAE,oBAAoB,EAAE,kBAAkB,CAAC,CAAC;AACrH,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ValidationContext } from "../types/validation-context.interface";
|
|
2
|
+
import { ValidationErrorData } from "../types/validation-error-data.interface";
|
|
3
|
+
import { ValidationSchema } from "../types/validation-schema.interface";
|
|
4
|
+
import { BaseValidationSchema } from "./base.schema";
|
|
5
|
+
export declare class ArrayValidationSchema<T> extends BaseValidationSchema<T[], ArrayValidationSchema<T>> {
|
|
6
|
+
readonly type = "array";
|
|
7
|
+
private _itemSchema?;
|
|
8
|
+
private _min?;
|
|
9
|
+
private _max?;
|
|
10
|
+
of(itemSchema: ValidationSchema<T>): this;
|
|
11
|
+
min(min: number): this;
|
|
12
|
+
max(max: number): this;
|
|
13
|
+
protected _typeCheck(value: unknown, path: string[]): ValidationErrorData[];
|
|
14
|
+
protected _validateAgainstSchema(value: T[], context?: ValidationContext): ValidationErrorData[];
|
|
15
|
+
private _validateCount;
|
|
16
|
+
private _validateItems;
|
|
17
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ArrayValidationSchema = 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 count_validation_rule_1 = require("../validation-rules/count.validation-rule");
|
|
7
|
+
const base_schema_1 = require("./base.schema");
|
|
8
|
+
class ArrayValidationSchema extends base_schema_1.BaseValidationSchema {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(...arguments);
|
|
11
|
+
this.type = "array";
|
|
12
|
+
}
|
|
13
|
+
of(itemSchema) {
|
|
14
|
+
this._itemSchema = itemSchema;
|
|
15
|
+
return this;
|
|
16
|
+
}
|
|
17
|
+
min(min) {
|
|
18
|
+
this._min = min;
|
|
19
|
+
return this;
|
|
20
|
+
}
|
|
21
|
+
max(max) {
|
|
22
|
+
this._max = max;
|
|
23
|
+
return this;
|
|
24
|
+
}
|
|
25
|
+
_typeCheck(value, path) {
|
|
26
|
+
if (!Array.isArray(value)) {
|
|
27
|
+
return [
|
|
28
|
+
{
|
|
29
|
+
path,
|
|
30
|
+
message: this._message ?? "Value must be an array",
|
|
31
|
+
provided: value,
|
|
32
|
+
validationRule: {
|
|
33
|
+
ruleType: rule_types_enum_1.RuleType.COUNT,
|
|
34
|
+
settings: {
|
|
35
|
+
min: this._min,
|
|
36
|
+
max: this._max,
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
];
|
|
41
|
+
}
|
|
42
|
+
return [];
|
|
43
|
+
}
|
|
44
|
+
_validateAgainstSchema(value, context = {}) {
|
|
45
|
+
const errors = [];
|
|
46
|
+
const itemsCountError = this._validateCount(value, context.path ?? []);
|
|
47
|
+
if (itemsCountError) {
|
|
48
|
+
errors.push(itemsCountError);
|
|
49
|
+
}
|
|
50
|
+
errors.push(...this._validateItems(value, context));
|
|
51
|
+
return errors;
|
|
52
|
+
}
|
|
53
|
+
_validateCount(value, path) {
|
|
54
|
+
if (this._min === undefined && this._max === undefined && this._validationRule === undefined) {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
const validationRule = this._validationRule ?? {
|
|
58
|
+
ruleType: rule_types_enum_1.RuleType.COUNT,
|
|
59
|
+
settings: {
|
|
60
|
+
min: this._min,
|
|
61
|
+
max: this._max,
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
return (0, validate_with_function_1.validateWithFunction)(value, validationRule, path, this._message ?? "Array count validation failed", count_validation_rule_1.validateValuesCount);
|
|
65
|
+
}
|
|
66
|
+
_validateItems(value, context) {
|
|
67
|
+
if (this._itemSchema === undefined) {
|
|
68
|
+
return [];
|
|
69
|
+
}
|
|
70
|
+
const errors = [];
|
|
71
|
+
for (let i = 0; i < value.length; i++) {
|
|
72
|
+
const itemValidationResult = this._itemSchema.validate(value[i], {
|
|
73
|
+
...context,
|
|
74
|
+
path: [...(context.path ?? []), i.toString()],
|
|
75
|
+
});
|
|
76
|
+
if (!itemValidationResult.isValid) {
|
|
77
|
+
errors.push(...itemValidationResult.errors);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return errors;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
exports.ArrayValidationSchema = ArrayValidationSchema;
|
|
84
|
+
//# sourceMappingURL=array.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array.schema.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/schemas/array.schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { RuleInstance } from "../types/rule-instance.interface";
|
|
2
|
+
import { ValidationContext } from "../types/validation-context.interface";
|
|
3
|
+
import { ValidationErrorData } from "../types/validation-error-data.interface";
|
|
4
|
+
import { ValidationResult } from "../types/validation-result.interface";
|
|
5
|
+
import { SchemaType, ValidationSchema } from "../types/validation-schema.interface";
|
|
6
|
+
export declare abstract class BaseValidationSchema<TType, TSelf extends BaseValidationSchema<TType, TSelf>> implements ValidationSchema<TType> {
|
|
7
|
+
protected _required?: boolean;
|
|
8
|
+
protected _message?: string;
|
|
9
|
+
protected _validationRule?: RuleInstance<unknown>;
|
|
10
|
+
protected _allowedValues?: unknown[];
|
|
11
|
+
abstract readonly type: SchemaType;
|
|
12
|
+
constructor(validationRule?: RuleInstance<unknown>);
|
|
13
|
+
required(required: boolean): TSelf;
|
|
14
|
+
message(msg: string): TSelf;
|
|
15
|
+
allowedValues(values: unknown[]): TSelf;
|
|
16
|
+
validate(value: TType, context?: ValidationContext): ValidationResult;
|
|
17
|
+
private _validateAllowedValues;
|
|
18
|
+
protected abstract _typeCheck(value: TType, path: string[]): ValidationErrorData[];
|
|
19
|
+
protected abstract _validateAgainstSchema(value: TType, context: ValidationContext): ValidationErrorData[];
|
|
20
|
+
}
|