@platecms/delta-validation 0.4.1 → 0.7.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 (149) hide show
  1. package/package.json +5 -6
  2. package/src/lib/enums/rule-types.enum.ts +10 -0
  3. package/src/lib/errors/invalid-validation-arguments.error.ts +1 -0
  4. package/src/lib/errors/invalid-validation-rule-settings.error.ts +1 -0
  5. package/src/lib/errors/validation-error-details.ts +15 -0
  6. package/src/lib/errors/validation.error.ts +18 -0
  7. package/src/lib/helpers/deserialize-validation-rule.ts +94 -0
  8. package/src/lib/helpers/rule-to-schema.spec.ts +254 -0
  9. package/src/lib/helpers/rule-to-schema.ts +95 -0
  10. package/src/lib/helpers/schema-builder.spec.ts +52 -0
  11. package/src/lib/helpers/schema-builder.ts +28 -0
  12. package/src/lib/helpers/validate-with-function.spec.ts +264 -0
  13. package/src/lib/helpers/validate-with-function.ts +45 -0
  14. package/src/lib/schemas/array.schema.spec.ts +127 -0
  15. package/src/lib/schemas/array.schema.ts +104 -0
  16. package/src/lib/schemas/base.schema.spec.ts +168 -0
  17. package/src/lib/schemas/base.schema.ts +150 -0
  18. package/src/lib/schemas/content-value.schema.spec.ts +133 -0
  19. package/src/lib/schemas/content-value.schema.ts +61 -0
  20. package/src/lib/schemas/date.schema.spec.ts +144 -0
  21. package/src/lib/schemas/date.schema.ts +82 -0
  22. package/src/lib/schemas/number.schema.spec.ts +232 -0
  23. package/src/lib/schemas/number.schema.ts +123 -0
  24. package/src/lib/schemas/string.schema.spec.ts +135 -0
  25. package/src/lib/schemas/string.schema.ts +73 -0
  26. package/src/lib/test-utils/setup-files.ts +1 -0
  27. package/src/lib/test-utils/validation-result-matcher.ts +71 -0
  28. package/src/lib/types/{existing-content-validation-rules-settings.type.d.ts → existing-content-validation-rules-settings.type.ts} +10 -1
  29. package/src/lib/types/{existing-content-validation-rules.type.d.ts → existing-content-validation-rules.type.ts} +10 -1
  30. package/src/lib/types/{existing-validation-schemas.type.d.ts → existing-validation-schemas.type.ts} +7 -1
  31. package/src/lib/types/rule-instance.interface.ts +9 -0
  32. package/src/lib/types/{validation-context.interface.d.ts → validation-context.interface.ts} +3 -2
  33. package/src/lib/types/{validation-error-data.interface.d.ts → validation-error-data.interface.ts} +5 -4
  34. package/src/lib/types/{validation-result.interface.d.ts → validation-result.interface.ts} +3 -2
  35. package/src/lib/types/validation-schema.interface.ts +15 -0
  36. package/src/lib/validation-rules/allowed-values.validation-rule.spec.ts +57 -0
  37. package/src/lib/validation-rules/allowed-values.validation-rule.ts +53 -0
  38. package/src/lib/validation-rules/base.validation-rule.ts +35 -0
  39. package/src/lib/validation-rules/count.validation-rule.spec.ts +67 -0
  40. package/src/lib/validation-rules/count.validation-rule.ts +60 -0
  41. package/src/lib/validation-rules/date-between.validation-rule.spec.ts +77 -0
  42. package/src/lib/validation-rules/date-between.validation-rule.ts +54 -0
  43. package/src/lib/validation-rules/decimal-count.validation-rule.spec.ts +46 -0
  44. package/src/lib/validation-rules/decimal-count.validation-rule.ts +52 -0
  45. package/src/lib/validation-rules/number-between.validation-rule.spec.ts +77 -0
  46. package/src/lib/validation-rules/number-between.validation-rule.ts +58 -0
  47. package/src/lib/validation-rules/relatable-content-types.validation-rule.spec.ts +35 -0
  48. package/src/lib/validation-rules/relatable-content-types.validation-rule.ts +61 -0
  49. package/src/lib/validation-rules/string-format.validation-rule.spec.ts +43 -0
  50. package/src/lib/validation-rules/string-format.validation-rule.ts +50 -0
  51. package/src/lib/validation-rules/validation-rule-function.factory.ts +23 -0
  52. package/src/lib/validation-rules/value-type.validation-rule.spec.ts +108 -0
  53. package/src/lib/validation-rules/value-type.validation-rule.ts +76 -0
  54. package/src/index.js +0 -23
  55. package/src/index.js.map +0 -1
  56. package/src/lib/enums/rule-types.enum.d.ts +0 -10
  57. package/src/lib/enums/rule-types.enum.js +0 -15
  58. package/src/lib/enums/rule-types.enum.js.map +0 -1
  59. package/src/lib/errors/invalid-validation-arguments.error.d.ts +0 -2
  60. package/src/lib/errors/invalid-validation-arguments.error.js +0 -7
  61. package/src/lib/errors/invalid-validation-arguments.error.js.map +0 -1
  62. package/src/lib/errors/invalid-validation-rule-settings.error.d.ts +0 -2
  63. package/src/lib/errors/invalid-validation-rule-settings.error.js +0 -7
  64. package/src/lib/errors/invalid-validation-rule-settings.error.js.map +0 -1
  65. package/src/lib/errors/validation-error-details.d.ts +0 -6
  66. package/src/lib/errors/validation-error-details.js +0 -18
  67. package/src/lib/errors/validation-error-details.js.map +0 -1
  68. package/src/lib/errors/validation.error.d.ts +0 -8
  69. package/src/lib/errors/validation.error.js +0 -13
  70. package/src/lib/errors/validation.error.js.map +0 -1
  71. package/src/lib/helpers/deserialize-validation-rule.d.ts +0 -2
  72. package/src/lib/helpers/deserialize-validation-rule.js +0 -42
  73. package/src/lib/helpers/deserialize-validation-rule.js.map +0 -1
  74. package/src/lib/helpers/rule-to-schema.d.ts +0 -4
  75. package/src/lib/helpers/rule-to-schema.js +0 -65
  76. package/src/lib/helpers/rule-to-schema.js.map +0 -1
  77. package/src/lib/helpers/schema-builder.d.ts +0 -12
  78. package/src/lib/helpers/schema-builder.js +0 -27
  79. package/src/lib/helpers/schema-builder.js.map +0 -1
  80. package/src/lib/helpers/validate-with-function.d.ts +0 -4
  81. package/src/lib/helpers/validate-with-function.js +0 -31
  82. package/src/lib/helpers/validate-with-function.js.map +0 -1
  83. package/src/lib/schemas/array.schema.d.ts +0 -17
  84. package/src/lib/schemas/array.schema.js +0 -84
  85. package/src/lib/schemas/array.schema.js.map +0 -1
  86. package/src/lib/schemas/base.schema.d.ts +0 -20
  87. package/src/lib/schemas/base.schema.js +0 -95
  88. package/src/lib/schemas/base.schema.js.map +0 -1
  89. package/src/lib/schemas/content-value.schema.d.ts +0 -15
  90. package/src/lib/schemas/content-value.schema.js +0 -42
  91. package/src/lib/schemas/content-value.schema.js.map +0 -1
  92. package/src/lib/schemas/date.schema.d.ts +0 -13
  93. package/src/lib/schemas/date.schema.js +0 -62
  94. package/src/lib/schemas/date.schema.js.map +0 -1
  95. package/src/lib/schemas/number.schema.d.ts +0 -16
  96. package/src/lib/schemas/number.schema.js +0 -84
  97. package/src/lib/schemas/number.schema.js.map +0 -1
  98. package/src/lib/schemas/string.schema.d.ts +0 -11
  99. package/src/lib/schemas/string.schema.js +0 -56
  100. package/src/lib/schemas/string.schema.js.map +0 -1
  101. package/src/lib/types/existing-content-validation-rules-settings.type.js +0 -3
  102. package/src/lib/types/existing-content-validation-rules-settings.type.js.map +0 -1
  103. package/src/lib/types/existing-content-validation-rules.type.js +0 -3
  104. package/src/lib/types/existing-content-validation-rules.type.js.map +0 -1
  105. package/src/lib/types/existing-validation-schemas.type.js +0 -3
  106. package/src/lib/types/existing-validation-schemas.type.js.map +0 -1
  107. package/src/lib/types/rule-instance.interface.d.ts +0 -6
  108. package/src/lib/types/rule-instance.interface.js +0 -3
  109. package/src/lib/types/rule-instance.interface.js.map +0 -1
  110. package/src/lib/types/validation-context.interface.js +0 -3
  111. package/src/lib/types/validation-context.interface.js.map +0 -1
  112. package/src/lib/types/validation-error-data.interface.js +0 -3
  113. package/src/lib/types/validation-error-data.interface.js.map +0 -1
  114. package/src/lib/types/validation-result.interface.js +0 -3
  115. package/src/lib/types/validation-result.interface.js.map +0 -1
  116. package/src/lib/types/validation-schema.interface.d.ts +0 -7
  117. package/src/lib/types/validation-schema.interface.js +0 -3
  118. package/src/lib/types/validation-schema.interface.js.map +0 -1
  119. package/src/lib/validation-rules/allowed-values.validation-rule.d.ts +0 -13
  120. package/src/lib/validation-rules/allowed-values.validation-rule.js +0 -36
  121. package/src/lib/validation-rules/allowed-values.validation-rule.js.map +0 -1
  122. package/src/lib/validation-rules/base.validation-rule.d.ts +0 -13
  123. package/src/lib/validation-rules/base.validation-rule.js +0 -14
  124. package/src/lib/validation-rules/base.validation-rule.js.map +0 -1
  125. package/src/lib/validation-rules/count.validation-rule.d.ts +0 -16
  126. package/src/lib/validation-rules/count.validation-rule.js +0 -36
  127. package/src/lib/validation-rules/count.validation-rule.js.map +0 -1
  128. package/src/lib/validation-rules/date-between.validation-rule.d.ts +0 -16
  129. package/src/lib/validation-rules/date-between.validation-rule.js +0 -36
  130. package/src/lib/validation-rules/date-between.validation-rule.js.map +0 -1
  131. package/src/lib/validation-rules/decimal-count.validation-rule.d.ts +0 -13
  132. package/src/lib/validation-rules/decimal-count.validation-rule.js +0 -37
  133. package/src/lib/validation-rules/decimal-count.validation-rule.js.map +0 -1
  134. package/src/lib/validation-rules/number-between.validation-rule.d.ts +0 -16
  135. package/src/lib/validation-rules/number-between.validation-rule.js +0 -37
  136. package/src/lib/validation-rules/number-between.validation-rule.js.map +0 -1
  137. package/src/lib/validation-rules/relatable-content-types.validation-rule.d.ts +0 -13
  138. package/src/lib/validation-rules/relatable-content-types.validation-rule.js +0 -37
  139. package/src/lib/validation-rules/relatable-content-types.validation-rule.js.map +0 -1
  140. package/src/lib/validation-rules/string-format.validation-rule.d.ts +0 -13
  141. package/src/lib/validation-rules/string-format.validation-rule.js +0 -35
  142. package/src/lib/validation-rules/string-format.validation-rule.js.map +0 -1
  143. package/src/lib/validation-rules/validation-rule-function.factory.d.ts +0 -4
  144. package/src/lib/validation-rules/validation-rule-function.factory.js +0 -9
  145. package/src/lib/validation-rules/validation-rule-function.factory.js.map +0 -1
  146. package/src/lib/validation-rules/value-type.validation-rule.d.ts +0 -13
  147. package/src/lib/validation-rules/value-type.validation-rule.js +0 -53
  148. package/src/lib/validation-rules/value-type.validation-rule.js.map +0 -1
  149. /package/src/{index.d.ts → index.ts} +0 -0
@@ -1,16 +0,0 @@
1
- import { PRN } from "@platecms/delta-plate-resource-notation";
2
- import { ContentValueType } from "@platecms/delta-types";
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 validateValueNumberBetween(value: ContentValueType, ruleInstance: RuleInstance<NumberBetweenValidationRuleSettings>): ContentValidationResultType;
7
- export declare const validateNumberBetween: <TRuleInstance extends RuleInstance<NumberBetweenValidationRuleSettings> = RuleInstance<NumberBetweenValidationRuleSettings>>(values: ContentValueType[], ruleInstance: TRuleInstance) => ContentValidationResultType[];
8
- export declare class NumberBetweenValidationRule extends BaseValidationRule<NumberBetweenValidationRuleSettings> {
9
- readonly ruleType: RuleType;
10
- constructor(prn: PRN, settings: NumberBetweenValidationRuleSettings);
11
- validate(values: ContentValueType[]): ContentValidationResultType[];
12
- }
13
- export interface NumberBetweenValidationRuleSettings {
14
- min?: number;
15
- max?: number;
16
- }
@@ -1,37 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NumberBetweenValidationRule = exports.validateNumberBetween = void 0;
4
- exports.validateValueNumberBetween = validateValueNumberBetween;
5
- const invalid_validation_rule_settings_error_1 = require("../errors/invalid-validation-rule-settings.error");
6
- const validation_error_details_1 = require("../errors/validation-error-details");
7
- const rule_types_enum_1 = require("../enums/rule-types.enum");
8
- const base_validation_rule_1 = require("./base.validation-rule");
9
- const validation_rule_function_factory_1 = require("./validation-rule-function.factory");
10
- function validateValueNumberBetween(value, ruleInstance) {
11
- const num = Number(value);
12
- if (Number.isNaN(num)) {
13
- return null;
14
- }
15
- if (ruleInstance.settings.min != null && num < ruleInstance.settings.min) {
16
- return new validation_error_details_1.ValidationErrorDetails(`The value must be greater than or equal ${ruleInstance.settings.min}.`, ruleInstance);
17
- }
18
- if (ruleInstance.settings.max != null && num > ruleInstance.settings.max) {
19
- return new validation_error_details_1.ValidationErrorDetails(`The value must be less than or equal ${ruleInstance.settings.max}.`, ruleInstance);
20
- }
21
- return true;
22
- }
23
- exports.validateNumberBetween = (0, validation_rule_function_factory_1.validationFunctionFromValidateValue)(validateValueNumberBetween);
24
- class NumberBetweenValidationRule extends base_validation_rule_1.BaseValidationRule {
25
- constructor(prn, settings) {
26
- if (settings.min == null && settings.max == null) {
27
- throw new invalid_validation_rule_settings_error_1.InvalidValidationRuleSettingsError("Either min or max must be defined.");
28
- }
29
- super(prn, settings);
30
- this.ruleType = rule_types_enum_1.RuleType.NUMBER_BETWEEN;
31
- }
32
- validate(values) {
33
- return (0, exports.validateNumberBetween)(values, this);
34
- }
35
- }
36
- exports.NumberBetweenValidationRule = NumberBetweenValidationRule;
37
- //# sourceMappingURL=number-between.validation-rule.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"number-between.validation-rule.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/validation-rules/number-between.validation-rule.ts"],"names":[],"mappings":";;;AASA,gEAsBC;AA7BD,6GAAsG;AACtG,iFAA4E;AAE5E,8DAAoD;AACpD,iEAAyF;AACzF,yFAAyF;AAEzF,SAAgB,0BAA0B,CACxC,KAAuB,EACvB,YAA+D;IAE/D,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QACzE,OAAO,IAAI,iDAAsB,CAC/B,2CAA2C,YAAY,CAAC,QAAQ,CAAC,GAAG,GAAG,EACvE,YAAY,CACb,CAAC;IACJ,CAAC;IACD,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QACzE,OAAO,IAAI,iDAAsB,CAC/B,wCAAwC,YAAY,CAAC,QAAQ,CAAC,GAAG,GAAG,EACpE,YAAY,CACb,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAGY,QAAA,qBAAqB,GAAG,IAAA,sEAAmC,EAAC,0BAA0B,CAAC,CAAC;AAKrG,MAAa,2BAA4B,SAAQ,yCAAuD;IAGtG,YAAmB,GAAQ,EAAE,QAA6C;QACxE,IAAI,QAAQ,CAAC,GAAG,IAAI,IAAI,IAAI,QAAQ,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;YACjD,MAAM,IAAI,2EAAkC,CAAC,oCAAoC,CAAC,CAAC;QACrF,CAAC;QACD,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QANP,aAAQ,GAAa,0BAAQ,CAAC,cAAc,CAAC;IAO7D,CAAC;IAEe,QAAQ,CAAC,MAA0B;QACjD,OAAO,IAAA,6BAAqB,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;CACF;AAbD,kEAaC"}
@@ -1,13 +0,0 @@
1
- import { PRN } from "@platecms/delta-plate-resource-notation";
2
- import { ContentValueType } from "@platecms/delta-types";
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 validateRelatableContentTypes<TContentType>(values: ContentValueType[], ruleInstance: RuleInstance<RelatableContentTypesValidationRuleSettings<TContentType>>, contentTypes: TContentType[]): ContentValidationResultType[];
7
- export declare class RelatableContentTypesValidationRule extends BaseValidationRule<RelatableContentTypesValidationRuleSettings<PRN>> {
8
- readonly ruleType: RuleType;
9
- validate(values: ContentValueType[], contentTypes?: PRN[]): ContentValidationResultType[];
10
- }
11
- export interface RelatableContentTypesValidationRuleSettings<TContentType> {
12
- allowedContentTypes: TContentType[];
13
- }
@@ -1,37 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RelatableContentTypesValidationRule = void 0;
4
- exports.validateRelatableContentTypes = validateRelatableContentTypes;
5
- const invalid_validation_arguments_error_1 = require("../errors/invalid-validation-arguments.error");
6
- const validation_error_details_1 = require("../errors/validation-error-details");
7
- const rule_types_enum_1 = require("../enums/rule-types.enum");
8
- const base_validation_rule_1 = require("./base.validation-rule");
9
- function validateValueRelatableContentTypes(value, contentType, ruleInstance) {
10
- if (contentType === undefined) {
11
- throw new invalid_validation_arguments_error_1.InvalidValidationArgumentsError(`Missing attribute 'contentType' for value: ${JSON.stringify(value)}`);
12
- }
13
- if (!ruleInstance.settings.allowedContentTypes.includes(contentType)) {
14
- return new validation_error_details_1.ValidationErrorDetails(`The provided content type must be type of ${ruleInstance.settings.allowedContentTypes.join(", ")}`, ruleInstance);
15
- }
16
- return true;
17
- }
18
- function validateRelatableContentTypes(values, ruleInstance, contentTypes) {
19
- if (values.length !== contentTypes.length) {
20
- throw new invalid_validation_arguments_error_1.InvalidValidationArgumentsError(`The length of values and contentTypes must be equal.`);
21
- }
22
- return values.map((value, index) => validateValueRelatableContentTypes(value, contentTypes[index], ruleInstance));
23
- }
24
- class RelatableContentTypesValidationRule extends base_validation_rule_1.BaseValidationRule {
25
- constructor() {
26
- super(...arguments);
27
- this.ruleType = rule_types_enum_1.RuleType.RELATABLE_CONTENT_TYPES;
28
- }
29
- validate(values, contentTypes) {
30
- if (contentTypes === undefined) {
31
- throw new invalid_validation_arguments_error_1.InvalidValidationArgumentsError(`Missing attribute 'contentTypes' in values: ${JSON.stringify(values)}`);
32
- }
33
- return validateRelatableContentTypes(values, this, contentTypes);
34
- }
35
- }
36
- exports.RelatableContentTypesValidationRule = RelatableContentTypesValidationRule;
37
- //# sourceMappingURL=relatable-content-types.validation-rule.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"relatable-content-types.validation-rule.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/validation-rules/relatable-content-types.validation-rule.ts"],"names":[],"mappings":";;;AA2BA,sEAUC;AAnCD,qGAA+F;AAC/F,iFAA4E;AAE5E,8DAAoD;AACpD,iEAAyF;AAEzF,SAAS,kCAAkC,CACzC,KAAuB,EACvB,WAAyB,EACzB,YAAqF;IAErF,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,IAAI,oEAA+B,CAAC,8CAA8C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnH,CAAC;IAED,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACrE,OAAO,IAAI,iDAAsB,CAC/B,6CAA6C,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EACnG,YAAY,CACb,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,6BAA6B,CAC3C,MAA0B,EAC1B,YAAqF,EACrF,YAA4B;IAE5B,IAAI,MAAM,CAAC,MAAM,KAAK,YAAY,CAAC,MAAM,EAAE,CAAC;QAC1C,MAAM,IAAI,oEAA+B,CAAC,sDAAsD,CAAC,CAAC;IACpG,CAAC;IAED,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,kCAAkC,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;AACpH,CAAC;AAKD,MAAa,mCAAoC,SAAQ,yCAExD;IAFD;;QAGkB,aAAQ,GAAa,0BAAQ,CAAC,uBAAuB,CAAC;IAWxE,CAAC;IATiB,QAAQ,CAAC,MAA0B,EAAE,YAAoB;QACvE,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,oEAA+B,CACvC,+CAA+C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CACxE,CAAC;QACJ,CAAC;QAED,OAAO,6BAA6B,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IACnE,CAAC;CACF;AAdD,kFAcC"}
@@ -1,13 +0,0 @@
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 validateValueStringFormat(value: ContentValueType, ruleInstance: RuleInstance<StringFormatValidationRuleSettings>): ContentValidationResultType;
6
- export declare const validateStringFormat: <TRuleInstance extends RuleInstance<StringFormatValidationRuleSettings> = RuleInstance<StringFormatValidationRuleSettings>>(values: ContentValueType[], ruleInstance: TRuleInstance) => ContentValidationResultType[];
7
- export declare class StringFormatValidationRule extends BaseValidationRule<StringFormatValidationRuleSettings> {
8
- readonly ruleType: RuleType;
9
- validate(values: ContentValueType[]): ContentValidationResultType[];
10
- }
11
- export interface StringFormatValidationRuleSettings {
12
- allowedFormat: string;
13
- }
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StringFormatValidationRule = exports.validateStringFormat = void 0;
4
- exports.validateValueStringFormat = validateValueStringFormat;
5
- const validation_error_details_1 = require("../errors/validation-error-details");
6
- const rule_types_enum_1 = require("../enums/rule-types.enum");
7
- const base_validation_rule_1 = require("./base.validation-rule");
8
- const validation_rule_function_factory_1 = require("./validation-rule-function.factory");
9
- function validateValueStringFormat(value, ruleInstance) {
10
- if (typeof value !== "string") {
11
- return null;
12
- }
13
- const { allowedFormat } = ruleInstance.settings;
14
- const isDefined = allowedFormat !== undefined && allowedFormat !== null;
15
- if (!isDefined) {
16
- return null;
17
- }
18
- const regex = new RegExp(allowedFormat);
19
- if (!regex.test(value)) {
20
- return new validation_error_details_1.ValidationErrorDetails(`String does not match the required format`, ruleInstance);
21
- }
22
- return true;
23
- }
24
- exports.validateStringFormat = (0, validation_rule_function_factory_1.validationFunctionFromValidateValue)(validateValueStringFormat);
25
- class StringFormatValidationRule extends base_validation_rule_1.BaseValidationRule {
26
- constructor() {
27
- super(...arguments);
28
- this.ruleType = rule_types_enum_1.RuleType.STRING_FORMAT;
29
- }
30
- validate(values) {
31
- return (0, exports.validateStringFormat)(values, this);
32
- }
33
- }
34
- exports.StringFormatValidationRule = StringFormatValidationRule;
35
- //# sourceMappingURL=string-format.validation-rule.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"string-format.validation-rule.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/validation-rules/string-format.validation-rule.ts"],"names":[],"mappings":";;;AAOA,8DAwBC;AA9BD,iFAA4E;AAE5E,8DAAoD;AACpD,iEAAyF;AACzF,yFAAyF;AAEzF,SAAgB,yBAAyB,CACvC,KAAuB,EACvB,YAA8D;IAE9D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,EAAE,aAAa,EAAE,GAAG,YAAY,CAAC,QAAQ,CAAC;IAChD,MAAM,SAAS,GAAG,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,IAAI,CAAC;IAExE,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAGD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC;IAExC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAEvB,OAAO,IAAI,iDAAsB,CAAC,2CAA2C,EAAE,YAAY,CAAC,CAAC;IAC/F,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAGY,QAAA,oBAAoB,GAAG,IAAA,sEAAmC,EAAC,yBAAyB,CAAC,CAAC;AAKnG,MAAa,0BAA2B,SAAQ,yCAAsD;IAAtG;;QACkB,aAAQ,GAAa,0BAAQ,CAAC,aAAa,CAAC;IAK9D,CAAC;IAHiB,QAAQ,CAAC,MAA0B;QACjD,OAAO,IAAA,4BAAoB,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;CACF;AAND,gEAMC"}
@@ -1,4 +0,0 @@
1
- import { ContentValueType } from "@platecms/delta-types";
2
- import { RuleInstance } from "../types/rule-instance.interface";
3
- import { ContentValidationResultType } from "./base.validation-rule";
4
- export declare function validationFunctionFromValidateValue<TRuleInstanceSettings>(validateValue: (value: ContentValueType, ruleInstance: RuleInstance<TRuleInstanceSettings>) => ContentValidationResultType): <TRuleInstance extends RuleInstance<TRuleInstanceSettings> = RuleInstance<TRuleInstanceSettings>>(values: ContentValueType[], ruleInstance: TRuleInstance) => ContentValidationResultType[];
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validationFunctionFromValidateValue = validationFunctionFromValidateValue;
4
- function validationFunctionFromValidateValue(validateValue) {
5
- return function validate(values, ruleInstance) {
6
- return values.map((value) => validateValue(value, ruleInstance));
7
- };
8
- }
9
- //# sourceMappingURL=validation-rule-function.factory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation-rule-function.factory.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/validation-rules/validation-rule-function.factory.ts"],"names":[],"mappings":";;AAWA,kFAWC;AAXD,SAAgB,mCAAmC,CACjD,aAGgC;IAEhC,OAAO,SAAS,QAAQ,CAEtB,MAA0B,EAAE,YAA2B;QACvD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC;AACJ,CAAC"}
@@ -1,13 +0,0 @@
1
- import { ContentValueType, ContentValueTypeName } 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 validateValueValueType(value: ContentValueType, ruleInstance: RuleInstance<ValueTypeValidationRuleSettings>): ContentValidationResultType;
6
- export declare const validateValueType: <TRuleInstance extends RuleInstance<ValueTypeValidationRuleSettings> = RuleInstance<ValueTypeValidationRuleSettings>>(values: ContentValueType[], ruleInstance: TRuleInstance) => ContentValidationResultType[];
7
- export declare class ValueTypeValidationRule extends BaseValidationRule<ValueTypeValidationRuleSettings> {
8
- readonly ruleType: RuleType;
9
- validate(values: ContentValueType[]): ContentValidationResultType[];
10
- }
11
- export interface ValueTypeValidationRuleSettings {
12
- allowedTypes: ContentValueTypeName<ContentValueType>[];
13
- }
@@ -1,53 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ValueTypeValidationRule = exports.validateValueType = void 0;
4
- exports.validateValueValueType = validateValueValueType;
5
- const delta_cast_1 = require("@platecms/delta-cast");
6
- const delta_plate_resource_notation_1 = require("@platecms/delta-plate-resource-notation");
7
- const delta_types_1 = require("@platecms/delta-types");
8
- const validation_error_details_1 = require("../errors/validation-error-details");
9
- const rule_types_enum_1 = require("../enums/rule-types.enum");
10
- const base_validation_rule_1 = require("./base.validation-rule");
11
- const validation_rule_function_factory_1 = require("./validation-rule-function.factory");
12
- const prnResourceTypeToContentValueTypeNameMap = {
13
- "content-item": delta_types_1.ContentValueTypeNames.CONTENT_ITEM,
14
- asset: delta_types_1.ContentValueTypeNames.ASSET,
15
- "path-part": delta_types_1.ContentValueTypeNames.PATH_PART,
16
- "grid-placement": delta_types_1.ContentValueTypeNames.GRID_PLACEMENT,
17
- };
18
- function validateValueValueType(value, ruleInstance) {
19
- if (value instanceof Date && ruleInstance.settings.allowedTypes.includes(delta_types_1.ContentValueTypeNames.DATE)) {
20
- return true;
21
- }
22
- try {
23
- (0, delta_cast_1.validateCast)(value);
24
- if (ruleInstance.settings.allowedTypes.includes(delta_types_1.ContentValueTypeNames.SMART_TEXT)) {
25
- return true;
26
- }
27
- }
28
- catch (error) {
29
- if (!(error instanceof delta_cast_1.InvalidCastError)) {
30
- throw error;
31
- }
32
- }
33
- if (value instanceof delta_plate_resource_notation_1.PRN &&
34
- ruleInstance.settings.allowedTypes.includes(prnResourceTypeToContentValueTypeNameMap[value.resourceType])) {
35
- return true;
36
- }
37
- if (ruleInstance.settings.allowedTypes.includes((typeof value).toUpperCase())) {
38
- return true;
39
- }
40
- return new validation_error_details_1.ValidationErrorDetails(`The value must be of the correct type.`, ruleInstance);
41
- }
42
- exports.validateValueType = (0, validation_rule_function_factory_1.validationFunctionFromValidateValue)(validateValueValueType);
43
- class ValueTypeValidationRule extends base_validation_rule_1.BaseValidationRule {
44
- constructor() {
45
- super(...arguments);
46
- this.ruleType = rule_types_enum_1.RuleType.VALUE_TYPE;
47
- }
48
- validate(values) {
49
- return (0, exports.validateValueType)(values, this);
50
- }
51
- }
52
- exports.ValueTypeValidationRule = ValueTypeValidationRule;
53
- //# sourceMappingURL=value-type.validation-rule.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"value-type.validation-rule.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/validation-rules/value-type.validation-rule.ts"],"names":[],"mappings":";;;AAqBA,wDAiCC;AAtDD,qDAAsE;AACtE,2FAA8D;AAC9D,uDAAsG;AACtG,iFAA4E;AAE5E,8DAAoD;AACpD,iEAAyF;AACzF,yFAAyF;AAKzF,MAAM,wCAAwC,GAA0C;IAEtF,cAAc,EAAE,mCAAqB,CAAC,YAAY;IAClD,KAAK,EAAE,mCAAqB,CAAC,KAAK;IAClC,WAAW,EAAE,mCAAqB,CAAC,SAAS;IAC5C,gBAAgB,EAAE,mCAAqB,CAAC,cAAc;CAEvD,CAAC;AAEF,SAAgB,sBAAsB,CACpC,KAAuB,EACvB,YAA2D;IAE3D,IAAI,KAAK,YAAY,IAAI,IAAI,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,mCAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;QACrG,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,IAAA,yBAAY,EAAC,KAAK,CAAC,CAAC;QACpB,IAAI,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,mCAAqB,CAAC,UAAU,CAAC,EAAE,CAAC;YAClF,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,CAAC,KAAK,YAAY,6BAAgB,CAAC,EAAE,CAAC;YACzC,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,IACE,KAAK,YAAY,mCAAG;QACpB,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,wCAAwC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EACzG,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IACE,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,WAAW,EAA4C,CAAC,EACnH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,IAAI,iDAAsB,CAAC,wCAAwC,EAAE,YAAY,CAAC,CAAC;AAC5F,CAAC;AAGY,QAAA,iBAAiB,GAAG,IAAA,sEAAmC,EAAC,sBAAsB,CAAC,CAAC;AAK7F,MAAa,uBAAwB,SAAQ,yCAAmD;IAAhG;;QACkB,aAAQ,GAAa,0BAAQ,CAAC,UAAU,CAAC;IAK3D,CAAC;IAHiB,QAAQ,CAAC,MAA0B;QACjD,OAAO,IAAA,yBAAiB,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;CACF;AAND,0DAMC"}
File without changes