@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,62 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,16 +0,0 @@
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
- }
@@ -1,84 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"number.schema.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/schemas/number.schema.ts"],"names":[],"mappings":";;;AAAA,uDAA8D;AAC9D,8DAAoD;AACpD,8EAAyE;AAIzE,qGAG2D;AAC3D,uGAG4D;AAC5D,+CAAqD;AAErD,MAAa,sBAAuB,SAAQ,kCAAoD;IAAhG;;QACkB,SAAI,GAAG,QAAQ,CAAC;IAyGlC,CAAC;IApGQ,GAAG,CAAC,GAAW;QACpB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,GAAG,CAAC,GAAW;QACpB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,WAAW,CAAC,WAAmB;QACpC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAES,UAAU,CAAC,KAAc,EAAE,IAAc;QACjD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAElC,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;YAC9B,OAAO;gBACL;oBACE,IAAI;oBACJ,OAAO,EAAE,IAAI,CAAC,QAAQ,IAAI,8BAA8B;oBACxD,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;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAES,sBAAsB,CAAC,KAAa,EAAE,UAA6B,EAAE;QAC7E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;QAChC,MAAM,MAAM,GAA0B,EAAE,CAAC;QAEzC,MAAM,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACpE,IAAI,kBAAkB,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAClE,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACjC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,sBAAsB,CAC5B,KAAa,EACb,IAAc;QAEd,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,IAAI;YAC7C,QAAQ,EAAE,0BAAQ,CAAC,cAAc;YACjC,QAAQ,EAAE;gBACR,GAAG,EAAE,IAAI,CAAC,IAAI;gBACd,GAAG,EAAE,IAAI,CAAC,IAAI;aACf;SACF,CAAC;QAEF,OAAO,IAAA,6CAAoB,EACzB,KAAK,EACL,cAAmE,EACnE,IAAI,EACJ,IAAI,CAAC,QAAQ,IAAI,iCAAiC,EAClD,2DAA0B,CAC3B,CAAC;IACJ,CAAC;IAEO,qBAAqB,CAC3B,KAAa,EACb,IAAc;QAEd,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,IAAI;YAC7C,QAAQ,EAAE,0BAAQ,CAAC,aAAa;YAChC,QAAQ,EAAE;gBACR,GAAG,EAAE,IAAI,CAAC,YAAY;aACvB;SACF,CAAC;QAEF,OAAO,IAAA,6CAAoB,EACzB,KAAK,EACL,cAAkE,EAClE,IAAI,EACJ,IAAI,CAAC,QAAQ,IAAI,oCAAoC,EACrD,yDAAyB,CAC1B,CAAC;IACJ,CAAC;CACF;AA1GD,wDA0GC"}
@@ -1,11 +0,0 @@
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
- }
@@ -1,56 +0,0 @@
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
@@ -1 +0,0 @@
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 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=existing-content-validation-rules-settings.type.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"existing-content-validation-rules-settings.type.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/types/existing-content-validation-rules-settings.type.ts"],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=existing-content-validation-rules.type.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"existing-content-validation-rules.type.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/types/existing-content-validation-rules.type.ts"],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=existing-validation-schemas.type.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"existing-validation-schemas.type.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/types/existing-validation-schemas.type.ts"],"names":[],"mappings":""}
@@ -1,6 +0,0 @@
1
- import { RuleType } from "../enums/rule-types.enum";
2
- export interface RuleInstance<TRuleSettings> {
3
- id?: string;
4
- settings: TRuleSettings;
5
- ruleType: RuleType;
6
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=rule-instance.interface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rule-instance.interface.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/types/rule-instance.interface.ts"],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=validation-context.interface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation-context.interface.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/types/validation-context.interface.ts"],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=validation-error-data.interface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation-error-data.interface.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/types/validation-error-data.interface.ts"],"names":[],"mappings":""}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=validation-result.interface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation-result.interface.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/types/validation-result.interface.ts"],"names":[],"mappings":""}
@@ -1,7 +0,0 @@
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
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=validation-schema.interface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation-schema.interface.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/types/validation-schema.interface.ts"],"names":[],"mappings":""}
@@ -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 validateValueAllowedValues(value: ContentValueType, ruleInstance: RuleInstance<AllowedValuesValidationRuleSettings>): ContentValidationResultType;
6
- export declare const validateAllowedValues: <TRuleInstance extends RuleInstance<AllowedValuesValidationRuleSettings> = RuleInstance<AllowedValuesValidationRuleSettings>>(values: ContentValueType[], ruleInstance: TRuleInstance) => ContentValidationResultType[];
7
- export declare class AllowedValuesValidationRule extends BaseValidationRule<AllowedValuesValidationRuleSettings> {
8
- readonly ruleType: RuleType;
9
- validate(values: ContentValueType[]): ContentValidationResultType[];
10
- }
11
- export interface AllowedValuesValidationRuleSettings {
12
- allowedValues: ContentValueType[];
13
- }
@@ -1,36 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
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");
8
- const base_validation_rule_1 = require("./base.validation-rule");
9
- const validation_rule_function_factory_1 = require("./validation-rule-function.factory");
10
- function validateValueAllowedValues(value, ruleInstance) {
11
- const valid = ruleInstance.settings.allowedValues.some((allowedValue) => {
12
- if (value instanceof delta_plate_resource_notation_1.PRN) {
13
- return allowedValue instanceof delta_plate_resource_notation_1.PRN && value.equals(allowedValue);
14
- }
15
- if (value instanceof Date) {
16
- return allowedValue instanceof Date && value.getTime() === allowedValue.getTime();
17
- }
18
- return value === allowedValue;
19
- });
20
- if (!valid) {
21
- return new validation_error_details_1.ValidationErrorDetails(`The provided value must be one of ${ruleInstance.settings.allowedValues.join(", ")}`, ruleInstance);
22
- }
23
- return true;
24
- }
25
- exports.validateAllowedValues = (0, validation_rule_function_factory_1.validationFunctionFromValidateValue)(validateValueAllowedValues);
26
- class AllowedValuesValidationRule extends base_validation_rule_1.BaseValidationRule {
27
- constructor() {
28
- super(...arguments);
29
- this.ruleType = rule_types_enum_1.RuleType.ALLOWED_VALUES;
30
- }
31
- validate(values) {
32
- return (0, exports.validateAllowedValues)(values, this);
33
- }
34
- }
35
- exports.AllowedValuesValidationRule = AllowedValuesValidationRule;
36
- //# sourceMappingURL=allowed-values.validation-rule.js.map
@@ -1 +0,0 @@
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,13 +0,0 @@
1
- import { PRN } from "@platecms/delta-plate-resource-notation";
2
- import { ContentValueType } from "@platecms/delta-types";
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
- export declare abstract class BaseValidationRule<TSettings> implements RuleInstance<TSettings> {
8
- readonly prn: PRN;
9
- readonly settings: TSettings;
10
- abstract readonly ruleType: RuleType;
11
- constructor(prn: PRN, settings: TSettings);
12
- validate(_: ContentValueType[]): ContentValidationResultType[];
13
- }
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BaseValidationRule = void 0;
4
- class BaseValidationRule {
5
- constructor(prn, settings) {
6
- this.prn = prn;
7
- this.settings = settings;
8
- }
9
- validate(_) {
10
- throw new Error("validate method must be overridden.");
11
- }
12
- }
13
- exports.BaseValidationRule = BaseValidationRule;
14
- //# sourceMappingURL=base.validation-rule.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base.validation-rule.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/validation-rules/base.validation-rule.ts"],"names":[],"mappings":";;;AAWA,MAAsB,kBAAkB;IAOtC,YAAmB,GAAQ,EAAE,QAAmB;QAC9C,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAUM,QAAQ,CAAC,CAAqB;QACnC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;CACF;AAvBD,gDAuBC"}
@@ -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 validateValuesCount<T>(values: T[], ruleInstance: RuleInstance<CountValidationRuleSettings>): ContentValidationResultType;
7
- export declare function validateCount(value: ContentValueType[], ruleInstance: RuleInstance<CountValidationRuleSettings>): ContentValidationResultType[];
8
- export declare class CountValidationRule extends BaseValidationRule<CountValidationRuleSettings> {
9
- readonly ruleType: RuleType;
10
- constructor(prn: PRN, settings: CountValidationRuleSettings);
11
- validate(value: ContentValueType[]): ContentValidationResultType[];
12
- }
13
- export interface CountValidationRuleSettings {
14
- min?: number;
15
- max?: number;
16
- }
@@ -1,36 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CountValidationRule = void 0;
4
- exports.validateValuesCount = validateValuesCount;
5
- exports.validateCount = validateCount;
6
- const invalid_validation_rule_settings_error_1 = require("../errors/invalid-validation-rule-settings.error");
7
- const validation_error_details_1 = require("../errors/validation-error-details");
8
- const rule_types_enum_1 = require("../enums/rule-types.enum");
9
- const base_validation_rule_1 = require("./base.validation-rule");
10
- function validateValuesCount(values, ruleInstance) {
11
- if (ruleInstance.settings.min != null && values.length < ruleInstance.settings.min) {
12
- return new validation_error_details_1.ValidationErrorDetails(`The amount of provided values must be greater than or equal ${ruleInstance.settings.min}.`, ruleInstance);
13
- }
14
- if (ruleInstance.settings.max != null && values.length > ruleInstance.settings.max) {
15
- return new validation_error_details_1.ValidationErrorDetails(`The amount of provided values must be be less than or equal ${ruleInstance.settings.max}.`, ruleInstance);
16
- }
17
- return true;
18
- }
19
- function validateCount(value, ruleInstance) {
20
- const result = validateValuesCount(value, ruleInstance);
21
- return [result];
22
- }
23
- class CountValidationRule extends base_validation_rule_1.BaseValidationRule {
24
- constructor(prn, settings) {
25
- if (settings.min == null && settings.max == null) {
26
- throw new invalid_validation_rule_settings_error_1.InvalidValidationRuleSettingsError("Either min or max must be defined.");
27
- }
28
- super(prn, settings);
29
- this.ruleType = rule_types_enum_1.RuleType.COUNT;
30
- }
31
- validate(value) {
32
- return validateCount(value, this);
33
- }
34
- }
35
- exports.CountValidationRule = CountValidationRule;
36
- //# sourceMappingURL=count.validation-rule.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"count.validation-rule.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/validation-rules/count.validation-rule.ts"],"names":[],"mappings":";;;AAQA,kDAiBC;AAKD,sCAMC;AAlCD,6GAAsG;AACtG,iFAA4E;AAE5E,8DAAoD;AACpD,iEAAyF;AAEzF,SAAgB,mBAAmB,CACjC,MAAW,EACX,YAAuD;IAEvD,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QACnF,OAAO,IAAI,iDAAsB,CAC/B,+DAA+D,YAAY,CAAC,QAAQ,CAAC,GAAG,GAAG,EAC3F,YAAY,CACb,CAAC;IACJ,CAAC;IACD,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QACnF,OAAO,IAAI,iDAAsB,CAC/B,+DAA+D,YAAY,CAAC,QAAQ,CAAC,GAAG,GAAG,EAC3F,YAAY,CACb,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAKD,SAAgB,aAAa,CAC3B,KAAyB,EACzB,YAAuD;IAEvD,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACxD,OAAO,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAKD,MAAa,mBAAoB,SAAQ,yCAA+C;IAGtF,YAAmB,GAAQ,EAAE,QAAqC;QAChE,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,KAAK,CAAC;IAOpD,CAAC;IAEe,QAAQ,CAAC,KAAyB;QAChD,OAAO,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;CACF;AAbD,kDAaC"}
@@ -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 validateValueDateBetween(value: ContentValueType, ruleInstance: RuleInstance<DateBetweenValidationRuleSettings>): ContentValidationResultType;
7
- export declare const validateDateBetween: <TRuleInstance extends RuleInstance<DateBetweenValidationRuleSettings> = RuleInstance<DateBetweenValidationRuleSettings>>(values: ContentValueType[], ruleInstance: TRuleInstance) => ContentValidationResultType[];
8
- export declare class DateBetweenValidationRule extends BaseValidationRule<DateBetweenValidationRuleSettings> {
9
- readonly ruleType: RuleType;
10
- constructor(prn: PRN, settings: DateBetweenValidationRuleSettings);
11
- validate(values: ContentValueType[]): ContentValidationResultType[];
12
- }
13
- export interface DateBetweenValidationRuleSettings {
14
- start?: Date;
15
- end?: Date;
16
- }
@@ -1,36 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DateBetweenValidationRule = exports.validateDateBetween = void 0;
4
- exports.validateValueDateBetween = validateValueDateBetween;
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 validateValueDateBetween(value, ruleInstance) {
11
- if (!(value instanceof Date)) {
12
- return null;
13
- }
14
- if (ruleInstance.settings.start != null && value < ruleInstance.settings.start) {
15
- return new validation_error_details_1.ValidationErrorDetails(`The date must be greater than or equal ${ruleInstance.settings.start.toDateString()}`, ruleInstance);
16
- }
17
- if (ruleInstance.settings.end != null && value > ruleInstance.settings.end) {
18
- return new validation_error_details_1.ValidationErrorDetails(`The date must be lower than or equal ${ruleInstance.settings.end.toDateString()}`, ruleInstance);
19
- }
20
- return true;
21
- }
22
- exports.validateDateBetween = (0, validation_rule_function_factory_1.validationFunctionFromValidateValue)(validateValueDateBetween);
23
- class DateBetweenValidationRule extends base_validation_rule_1.BaseValidationRule {
24
- constructor(prn, settings) {
25
- if (settings.start == null && settings.end == null) {
26
- throw new invalid_validation_rule_settings_error_1.InvalidValidationRuleSettingsError("Either start or end must be defined.");
27
- }
28
- super(prn, settings);
29
- this.ruleType = rule_types_enum_1.RuleType.DATE_BETWEEN;
30
- }
31
- validate(values) {
32
- return (0, exports.validateDateBetween)(values, this);
33
- }
34
- }
35
- exports.DateBetweenValidationRule = DateBetweenValidationRule;
36
- //# sourceMappingURL=date-between.validation-rule.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"date-between.validation-rule.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/validation-rules/date-between.validation-rule.ts"],"names":[],"mappings":";;;AASA,4DAqBC;AA5BD,6GAAsG;AACtG,iFAA4E;AAE5E,8DAAoD;AACpD,iEAAyF;AACzF,yFAAyF;AAEzF,SAAgB,wBAAwB,CACtC,KAAuB,EACvB,YAA6D;IAE7D,IAAI,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC/E,OAAO,IAAI,iDAAsB,CAC/B,0CAA0C,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,EACtF,YAAY,CACb,CAAC;IACJ,CAAC;IACD,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,IAAI,IAAI,IAAI,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QAC3E,OAAO,IAAI,iDAAsB,CAC/B,wCAAwC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,EAClF,YAAY,CACb,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAGY,QAAA,mBAAmB,GAAG,IAAA,sEAAmC,EAAC,wBAAwB,CAAC,CAAC;AAEjG,MAAa,yBAA0B,SAAQ,yCAAqD;IAGlG,YAAmB,GAAQ,EAAE,QAA2C;QACtE,IAAI,QAAQ,CAAC,KAAK,IAAI,IAAI,IAAI,QAAQ,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;YACnD,MAAM,IAAI,2EAAkC,CAAC,sCAAsC,CAAC,CAAC;QACvF,CAAC;QACD,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QANP,aAAQ,GAAa,0BAAQ,CAAC,YAAY,CAAC;IAO3D,CAAC;IAEe,QAAQ,CAAC,MAA0B;QACjD,OAAO,IAAA,2BAAmB,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;CACF;AAbD,8DAaC"}
@@ -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 validateValueDecimalCount(value: ContentValueType, ruleInstance: RuleInstance<DecimalCountValidationRuleSettings>): ContentValidationResultType;
6
- export declare const validateDecimalCount: <TRuleInstance extends RuleInstance<DecimalCountValidationRuleSettings> = RuleInstance<DecimalCountValidationRuleSettings>>(values: ContentValueType[], ruleInstance: TRuleInstance) => ContentValidationResultType[];
7
- export declare class DecimalCountValidationRule extends BaseValidationRule<DecimalCountValidationRuleSettings> {
8
- readonly ruleType: RuleType;
9
- validate(values: ContentValueType[]): ContentValidationResultType[];
10
- }
11
- export interface DecimalCountValidationRuleSettings {
12
- max: number;
13
- }
@@ -1,37 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DecimalCountValidationRule = exports.validateDecimalCount = void 0;
4
- exports.validateValueDecimalCount = validateValueDecimalCount;
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 getDecimalCount(value) {
10
- const [_, decimalDigits] = value.toString().split(".");
11
- return decimalDigits ? decimalDigits.length : 0;
12
- }
13
- function validateValueDecimalCount(value, ruleInstance) {
14
- const num = Number(value);
15
- if (Number.isNaN(num)) {
16
- return null;
17
- }
18
- const decimalCount = getDecimalCount(num);
19
- const maxDecimals = ruleInstance.settings.max;
20
- const isDefined = maxDecimals != null && maxDecimals !== undefined;
21
- if (isDefined && decimalCount > maxDecimals) {
22
- return new validation_error_details_1.ValidationErrorDetails(`The number must not have more than ${maxDecimals} decimals.`, ruleInstance);
23
- }
24
- return true;
25
- }
26
- exports.validateDecimalCount = (0, validation_rule_function_factory_1.validationFunctionFromValidateValue)(validateValueDecimalCount);
27
- class DecimalCountValidationRule extends base_validation_rule_1.BaseValidationRule {
28
- constructor() {
29
- super(...arguments);
30
- this.ruleType = rule_types_enum_1.RuleType.DECIMAL_COUNT;
31
- }
32
- validate(values) {
33
- return (0, exports.validateDecimalCount)(values, this);
34
- }
35
- }
36
- exports.DecimalCountValidationRule = DecimalCountValidationRule;
37
- //# sourceMappingURL=decimal-count.validation-rule.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"decimal-count.validation-rule.js","sourceRoot":"","sources":["../../../../../../../packages/validation/src/lib/validation-rules/decimal-count.validation-rule.ts"],"names":[],"mappings":";;;AAYA,8DAkBC;AA7BD,iFAA4E;AAE5E,8DAAoD;AACpD,iEAAyF;AACzF,yFAAyF;AAEzF,SAAS,eAAe,CAAC,KAAa;IACpC,MAAM,CAAC,CAAC,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvD,OAAO,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,SAAgB,yBAAyB,CACvC,KAAuB,EACvB,YAA8D;IAE9D,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,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IAE1C,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC;IAC9C,MAAM,SAAS,GAAG,WAAW,IAAI,IAAI,IAAI,WAAW,KAAK,SAAS,CAAC;IACnE,IAAI,SAAS,IAAI,YAAY,GAAG,WAAW,EAAE,CAAC;QAC5C,OAAO,IAAI,iDAAsB,CAAC,sCAAsC,WAAW,YAAY,EAAE,YAAY,CAAC,CAAC;IACjH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAGY,QAAA,oBAAoB,GAAG,IAAA,sEAAmC,EAAC,yBAAyB,CAAC,CAAC;AAQnG,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"}