@platecms/delta-validation 0.3.0 → 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.
Files changed (123) hide show
  1. package/README.md +1 -1
  2. package/package.json +4 -5
  3. package/src/index.d.ts +20 -20
  4. package/src/index.js +13 -20
  5. package/src/index.js.map +1 -1
  6. package/src/lib/{types → enums}/rule-types.enum.js.map +1 -1
  7. package/src/lib/errors/invalid-validation-arguments.error.d.ts +2 -0
  8. package/src/lib/errors/invalid-validation-arguments.error.js +7 -0
  9. package/src/lib/errors/invalid-validation-arguments.error.js.map +1 -0
  10. package/src/lib/errors/invalid-validation-rule-settings.error.d.ts +2 -0
  11. package/src/lib/errors/invalid-validation-rule-settings.error.js +7 -0
  12. package/src/lib/errors/invalid-validation-rule-settings.error.js.map +1 -0
  13. package/src/lib/errors/validation-error-details.d.ts +6 -0
  14. package/src/lib/errors/{content-validation-error-detail.js → validation-error-details.js} +6 -7
  15. package/src/lib/errors/validation-error-details.js.map +1 -0
  16. package/src/lib/errors/validation.error.d.ts +8 -0
  17. package/src/lib/errors/validation.error.js +13 -0
  18. package/src/lib/errors/validation.error.js.map +1 -0
  19. package/src/lib/helpers/deserialize-validation-rule.js +1 -1
  20. package/src/lib/helpers/deserialize-validation-rule.js.map +1 -1
  21. package/src/lib/helpers/rule-to-schema.d.ts +4 -0
  22. package/src/lib/helpers/rule-to-schema.js +65 -0
  23. package/src/lib/helpers/rule-to-schema.js.map +1 -0
  24. package/src/lib/helpers/schema-builder.d.ts +12 -0
  25. package/src/lib/helpers/schema-builder.js +27 -0
  26. package/src/lib/helpers/schema-builder.js.map +1 -0
  27. package/src/lib/helpers/validate-with-function.d.ts +4 -0
  28. package/src/lib/helpers/validate-with-function.js +31 -0
  29. package/src/lib/helpers/validate-with-function.js.map +1 -0
  30. package/src/lib/schemas/array.schema.d.ts +17 -0
  31. package/src/lib/schemas/array.schema.js +84 -0
  32. package/src/lib/schemas/array.schema.js.map +1 -0
  33. package/src/lib/schemas/base.schema.d.ts +20 -0
  34. package/src/lib/schemas/base.schema.js +95 -0
  35. package/src/lib/schemas/base.schema.js.map +1 -0
  36. package/src/lib/schemas/content-value.schema.d.ts +15 -0
  37. package/src/lib/schemas/content-value.schema.js +42 -0
  38. package/src/lib/schemas/content-value.schema.js.map +1 -0
  39. package/src/lib/schemas/date.schema.d.ts +13 -0
  40. package/src/lib/schemas/date.schema.js +62 -0
  41. package/src/lib/schemas/date.schema.js.map +1 -0
  42. package/src/lib/schemas/number.schema.d.ts +16 -0
  43. package/src/lib/schemas/number.schema.js +84 -0
  44. package/src/lib/schemas/number.schema.js.map +1 -0
  45. package/src/lib/schemas/string.schema.d.ts +11 -0
  46. package/src/lib/schemas/string.schema.js +56 -0
  47. package/src/lib/schemas/string.schema.js.map +1 -0
  48. package/src/lib/types/existing-content-validation-rules-settings.type.d.ts +1 -1
  49. package/src/lib/types/existing-validation-schemas.type.d.ts +6 -0
  50. package/src/lib/types/{unknown-validation-error-target.interface.js → existing-validation-schemas.type.js} +1 -1
  51. package/src/lib/types/existing-validation-schemas.type.js.map +1 -0
  52. package/src/lib/types/rule-instance.interface.d.ts +3 -0
  53. package/src/lib/types/validation-context.interface.d.ts +5 -0
  54. package/src/lib/types/validation-context.interface.js +3 -0
  55. package/src/lib/types/validation-context.interface.js.map +1 -0
  56. package/src/lib/types/validation-error-data.interface.d.ts +7 -0
  57. package/src/lib/types/validation-error-data.interface.js +3 -0
  58. package/src/lib/types/validation-error-data.interface.js.map +1 -0
  59. package/src/lib/types/validation-result.interface.d.ts +5 -0
  60. package/src/lib/types/validation-result.interface.js +3 -0
  61. package/src/lib/types/validation-result.interface.js.map +1 -0
  62. package/src/lib/types/validation-schema.interface.d.ts +7 -0
  63. package/src/lib/types/validation-schema.interface.js +3 -0
  64. package/src/lib/types/validation-schema.interface.js.map +1 -0
  65. package/src/lib/validation-rules/allowed-values.validation-rule.d.ts +4 -3
  66. package/src/lib/validation-rules/allowed-values.validation-rule.js +5 -4
  67. package/src/lib/validation-rules/allowed-values.validation-rule.js.map +1 -1
  68. package/src/lib/validation-rules/base.validation-rule.d.ts +4 -4
  69. package/src/lib/validation-rules/count.validation-rule.d.ts +5 -4
  70. package/src/lib/validation-rules/count.validation-rule.js +13 -12
  71. package/src/lib/validation-rules/count.validation-rule.js.map +1 -1
  72. package/src/lib/validation-rules/date-between.validation-rule.d.ts +6 -5
  73. package/src/lib/validation-rules/date-between.validation-rule.js +10 -9
  74. package/src/lib/validation-rules/date-between.validation-rule.js.map +1 -1
  75. package/src/lib/validation-rules/decimal-count.validation-rule.d.ts +4 -3
  76. package/src/lib/validation-rules/decimal-count.validation-rule.js +10 -6
  77. package/src/lib/validation-rules/decimal-count.validation-rule.js.map +1 -1
  78. package/src/lib/validation-rules/number-between.validation-rule.d.ts +4 -3
  79. package/src/lib/validation-rules/number-between.validation-rule.js +11 -9
  80. package/src/lib/validation-rules/number-between.validation-rule.js.map +1 -1
  81. package/src/lib/validation-rules/relatable-content-types.validation-rule.d.ts +3 -3
  82. package/src/lib/validation-rules/relatable-content-types.validation-rule.js +7 -7
  83. package/src/lib/validation-rules/relatable-content-types.validation-rule.js.map +1 -1
  84. package/src/lib/validation-rules/string-format.validation-rule.d.ts +3 -3
  85. package/src/lib/validation-rules/string-format.validation-rule.js +9 -4
  86. package/src/lib/validation-rules/string-format.validation-rule.js.map +1 -1
  87. package/src/lib/validation-rules/validation-rule-function.factory.d.ts +1 -1
  88. package/src/lib/validation-rules/value-type.validation-rule.d.ts +2 -2
  89. package/src/lib/validation-rules/value-type.validation-rule.js +6 -6
  90. package/src/lib/validation-rules/value-type.validation-rule.js.map +1 -1
  91. package/src/lib/content-validation-error.serializer.d.ts +0 -7
  92. package/src/lib/content-validation-error.serializer.js +0 -30
  93. package/src/lib/content-validation-error.serializer.js.map +0 -1
  94. package/src/lib/errors/content-validation-error-detail.d.ts +0 -6
  95. package/src/lib/errors/content-validation-error-detail.js.map +0 -1
  96. package/src/lib/errors/content-validation-error.d.ts +0 -9
  97. package/src/lib/errors/content-validation-error.js +0 -24
  98. package/src/lib/errors/content-validation-error.js.map +0 -1
  99. package/src/lib/errors/validation-error-detail.d.ts +0 -4
  100. package/src/lib/errors/validation-error-detail.js +0 -10
  101. package/src/lib/errors/validation-error-detail.js.map +0 -1
  102. package/src/lib/errors/validation-error.d.ts +0 -9
  103. package/src/lib/errors/validation-error.js +0 -36
  104. package/src/lib/errors/validation-error.js.map +0 -1
  105. package/src/lib/invalid-content-validation-error.error.d.ts +0 -5
  106. package/src/lib/invalid-content-validation-error.error.js +0 -14
  107. package/src/lib/invalid-content-validation-error.error.js.map +0 -1
  108. package/src/lib/invalid-content-validation-validate-args.error.d.ts +0 -2
  109. package/src/lib/invalid-content-validation-validate-args.error.js +0 -7
  110. package/src/lib/invalid-content-validation-validate-args.error.js.map +0 -1
  111. package/src/lib/invalid-content-validation.error.d.ts +0 -2
  112. package/src/lib/invalid-content-validation.error.js +0 -7
  113. package/src/lib/invalid-content-validation.error.js.map +0 -1
  114. package/src/lib/types/content-item.model.d.ts +0 -7
  115. package/src/lib/types/content-item.model.js +0 -11
  116. package/src/lib/types/content-item.model.js.map +0 -1
  117. package/src/lib/types/content-type.model.d.ts +0 -6
  118. package/src/lib/types/content-type.model.js +0 -11
  119. package/src/lib/types/content-type.model.js.map +0 -1
  120. package/src/lib/types/unknown-validation-error-target.interface.d.ts +0 -5
  121. package/src/lib/types/unknown-validation-error-target.interface.js.map +0 -1
  122. /package/src/lib/{types → enums}/rule-types.enum.d.ts +0 -0
  123. /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;
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=unknown-validation-error-target.interface.js.map
3
+ //# sourceMappingURL=existing-validation-schemas.type.js.map
@@ -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":""}
@@ -1,3 +1,6 @@
1
+ import { RuleType } from "../enums/rule-types.enum";
1
2
  export interface RuleInstance<TRuleSettings> {
3
+ id?: string;
2
4
  settings: TRuleSettings;
5
+ ruleType: RuleType;
3
6
  }
@@ -0,0 +1,5 @@
1
+ import { ContentValueType } from "@platecms/delta-types";
2
+ export interface ValidationContext {
3
+ [key: string]: ContentValueType | string[] | undefined;
4
+ path?: string[];
5
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=validation-context.interface.js.map
@@ -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,7 @@
1
+ import { RuleInstance } from "./rule-instance.interface";
2
+ export interface ValidationErrorData<TSettings extends object = object> {
3
+ path: string[];
4
+ message: string;
5
+ validationRule: RuleInstance<TSettings>;
6
+ provided: unknown;
7
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=validation-error-data.interface.js.map
@@ -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,5 @@
1
+ import { ValidationErrorData } from "./validation-error-data.interface";
2
+ export interface ValidationResult {
3
+ isValid: boolean;
4
+ errors: ValidationErrorData[];
5
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=validation-result.interface.js.map
@@ -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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=validation-schema.interface.js.map
@@ -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 content_validation_error_detail_1.ContentValidationErrorDetail(`The provided value must be one of ${ruleInstance.settings.allowedValues.join(", ")}`, ruleInstance);
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":";;;AAAA,iEAAyF;AACzF,8DAAoD;AACpD,+FAAyF;AAEzF,yFAAyF;AAEzF,2FAA8D;AAE9D,SAAS,0BAA0B,CACjC,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,8DAA4B,CACrC,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
+ {"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
- export type ContentValidationResultType<TRuleInstance extends RuleInstance<unknown> = RuleInstance<unknown>> = ContentValidationErrorDetail<TRuleInstance> | true | null;
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
- export declare function validateCount(values: ContentValueType[], ruleInstance: RuleInstance<CountValidationRuleSettings>): ContentValidationResultType[];
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);