@hosterai/types 0.0.30 → 0.0.31

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 (155) hide show
  1. package/README.md +6 -1
  2. package/dist/decorators/is-e164-validator.spec.d.ts +1 -0
  3. package/dist/decorators/is-e164-validator.spec.js +64 -0
  4. package/dist/decorators/is-e164.validator.d.ts +2 -0
  5. package/dist/decorators/is-e164.validator.js +30 -0
  6. package/dist/decorators/unique-field-in-array-validator.spec.js +14 -0
  7. package/dist/decorators/unique-field-in-array.validator.js +18 -4
  8. package/dist/dtos/addon-field.dto.d.ts +6 -2
  9. package/dist/dtos/addon-field.dto.js +25 -2
  10. package/dist/dtos/attribute-field.dto.d.ts +18 -6
  11. package/dist/dtos/attribute-field.dto.js +18 -2
  12. package/dist/dtos/base-field.dto.d.ts +45 -0
  13. package/dist/dtos/base-field.dto.js +133 -0
  14. package/dist/dtos/field.dto.d.ts +5 -64
  15. package/dist/dtos/field.dto.js +0 -186
  16. package/dist/dtos/fields/any-field.dto.d.ts +38 -0
  17. package/dist/dtos/fields/any-field.dto.js +36 -0
  18. package/dist/dtos/fields/boolean-field.dto.d.ts +14 -0
  19. package/dist/dtos/fields/boolean-field.dto.js +48 -0
  20. package/dist/dtos/fields/countries-field.dto.d.ts +14 -0
  21. package/dist/dtos/fields/countries-field.dto.js +51 -0
  22. package/dist/dtos/fields/currency-field.dto.d.ts +14 -0
  23. package/dist/dtos/fields/currency-field.dto.js +50 -0
  24. package/dist/dtos/fields/date-field.dto.d.ts +14 -0
  25. package/dist/dtos/fields/date-field.dto.js +49 -0
  26. package/dist/dtos/fields/email-field.dto.d.ts +14 -0
  27. package/dist/dtos/fields/email-field.dto.js +49 -0
  28. package/dist/dtos/fields/multi-select-field.dto.d.ts +15 -0
  29. package/dist/dtos/fields/multi-select-field.dto.js +53 -0
  30. package/dist/dtos/fields/number-field.dto.d.ts +26 -0
  31. package/dist/dtos/fields/number-field.dto.js +82 -0
  32. package/dist/dtos/fields/password-field.dto.d.ts +21 -0
  33. package/dist/dtos/fields/password-field.dto.js +64 -0
  34. package/dist/dtos/fields/phone-field.dto.d.ts +14 -0
  35. package/dist/dtos/fields/phone-field.dto.js +50 -0
  36. package/dist/dtos/fields/select-field.dto.d.ts +15 -0
  37. package/dist/dtos/fields/select-field.dto.js +51 -0
  38. package/dist/dtos/fields/text-field.dto.d.ts +31 -0
  39. package/dist/dtos/fields/text-field.dto.js +102 -0
  40. package/dist/dtos/fields/textarea-field.dto.d.ts +31 -0
  41. package/dist/dtos/fields/textarea-field.dto.js +102 -0
  42. package/dist/dtos/fields/url-field.dto.d.ts +14 -0
  43. package/dist/dtos/fields/url-field.dto.js +49 -0
  44. package/dist/dtos/info/info-notification.dto.d.ts +5 -0
  45. package/dist/dtos/info/info-notification.dto.js +7 -0
  46. package/dist/dtos/info/info.dto.d.ts +196 -0
  47. package/dist/dtos/info/info.dto.js +278 -0
  48. package/dist/dtos/info.dto.d.ts +2 -2
  49. package/dist/dtos/info.dto.js +2 -5
  50. package/dist/dtos/notification/notification-request.dto.d.ts +20 -0
  51. package/dist/dtos/notification/notification-request.dto.js +31 -0
  52. package/dist/dtos/product/product-info.dto.js +2 -2
  53. package/dist/dtos/receiver/receiver-email.dto.d.ts +20 -0
  54. package/dist/dtos/receiver/receiver-email.dto.js +39 -0
  55. package/dist/dtos/receiver/receiver-push.dto.d.ts +15 -0
  56. package/dist/dtos/receiver/receiver-push.dto.js +31 -0
  57. package/dist/dtos/receiver/receiver-sms.dto.d.ts +11 -0
  58. package/dist/dtos/receiver/receiver-sms.dto.js +26 -0
  59. package/dist/dtos/request.dto.d.ts +20 -0
  60. package/dist/dtos/request.dto.js +31 -0
  61. package/dist/dtos/responses/validate-attributes-response.dto.d.ts +4 -4
  62. package/dist/dtos/responses/validate-attributes-response.dto.js +2 -6
  63. package/dist/dtos/sender/sender-email.dto.d.ts +25 -0
  64. package/dist/dtos/sender/sender-email.dto.js +46 -0
  65. package/dist/dtos/sender/sender-push.dto.d.ts +31 -0
  66. package/dist/dtos/sender/sender-push.dto.js +50 -0
  67. package/dist/dtos/sender/sender-sms.dto.d.ts +15 -0
  68. package/dist/dtos/sender/sender-sms.dto.js +30 -0
  69. package/dist/enums/field-type.enum.d.ts +20 -7
  70. package/dist/enums/field-type.enum.js +19 -7
  71. package/dist/enums/message-type.enum.d.ts +5 -0
  72. package/dist/enums/message-type.enum.js +9 -0
  73. package/dist/index.d.ts +29 -0
  74. package/dist/index.js +29 -0
  75. package/dist/openapi/schemas/components.schemas.d.ts +1168 -235
  76. package/dist/openapi/schemas/components.schemas.js +1869 -558
  77. package/dist/validators/addon-field-validator.d.ts +4 -1
  78. package/dist/validators/addon-field-validator.js +22 -3
  79. package/dist/validators/addon-field-validator.spec.js +15 -21
  80. package/dist/validators/any-field-validator.d.ts +10 -0
  81. package/dist/validators/any-field-validator.js +28 -0
  82. package/dist/validators/any-field-validator.spec.d.ts +1 -0
  83. package/dist/validators/any-field-validator.spec.js +37 -0
  84. package/dist/validators/attribute-field-validator.d.ts +4 -0
  85. package/dist/validators/attribute-field-validator.js +16 -0
  86. package/dist/validators/attribute-field-validator.spec.js +30 -20
  87. package/dist/validators/field-validator.d.ts +2 -4
  88. package/dist/validators/field-validator.js +4 -10
  89. package/dist/validators/field-validator.spec.js +16 -79
  90. package/dist/validators/fields/boolean-field-validator.d.ts +8 -0
  91. package/dist/validators/fields/boolean-field-validator.js +15 -0
  92. package/dist/validators/fields/boolean-field-validator.spec.d.ts +1 -0
  93. package/dist/validators/fields/boolean-field-validator.spec.js +43 -0
  94. package/dist/validators/fields/countries-field-validator.d.ts +8 -0
  95. package/dist/validators/fields/countries-field-validator.js +15 -0
  96. package/dist/validators/fields/countries-field-validator.spec.d.ts +1 -0
  97. package/dist/validators/fields/countries-field-validator.spec.js +44 -0
  98. package/dist/validators/fields/currency-field-validator.d.ts +8 -0
  99. package/dist/validators/fields/currency-field-validator.js +15 -0
  100. package/dist/validators/fields/currency-field-validator.spec.d.ts +1 -0
  101. package/dist/validators/fields/currency-field-validator.spec.js +41 -0
  102. package/dist/validators/fields/date-field-validator.d.ts +8 -0
  103. package/dist/validators/fields/date-field-validator.js +15 -0
  104. package/dist/validators/fields/date-field-validator.spec.d.ts +1 -0
  105. package/dist/validators/fields/date-field-validator.spec.js +43 -0
  106. package/dist/validators/fields/email-field-validator.d.ts +8 -0
  107. package/dist/validators/fields/email-field-validator.js +15 -0
  108. package/dist/validators/fields/email-field-validator.spec.d.ts +1 -0
  109. package/dist/validators/fields/email-field-validator.spec.js +43 -0
  110. package/dist/validators/fields/multi-select-field-validator.d.ts +8 -0
  111. package/dist/validators/fields/multi-select-field-validator.js +15 -0
  112. package/dist/validators/fields/multi-select-field-validator.spec.d.ts +1 -0
  113. package/dist/validators/fields/multi-select-field-validator.spec.js +52 -0
  114. package/dist/validators/fields/number-field-validator.d.ts +8 -0
  115. package/dist/validators/fields/number-field-validator.js +15 -0
  116. package/dist/validators/fields/number-field-validator.spec.d.ts +1 -0
  117. package/dist/validators/fields/number-field-validator.spec.js +59 -0
  118. package/dist/validators/fields/password-field-validator.d.ts +8 -0
  119. package/dist/validators/fields/password-field-validator.js +15 -0
  120. package/dist/validators/fields/password-field-validator.spec.d.ts +1 -0
  121. package/dist/validators/fields/password-field-validator.spec.js +44 -0
  122. package/dist/validators/fields/phone-field-validator.d.ts +8 -0
  123. package/dist/validators/fields/phone-field-validator.js +15 -0
  124. package/dist/validators/fields/phone-field-validator.spec.d.ts +1 -0
  125. package/dist/validators/fields/phone-field-validator.spec.js +41 -0
  126. package/dist/validators/fields/select-field-validator.d.ts +8 -0
  127. package/dist/validators/fields/select-field-validator.js +15 -0
  128. package/dist/validators/fields/select-field-validator.spec.d.ts +1 -0
  129. package/dist/validators/fields/select-field-validator.spec.js +46 -0
  130. package/dist/validators/fields/text-field-validator.d.ts +8 -0
  131. package/dist/validators/fields/text-field-validator.js +15 -0
  132. package/dist/validators/fields/text-field-validator.spec.d.ts +1 -0
  133. package/dist/validators/fields/text-field-validator.spec.js +60 -0
  134. package/dist/validators/fields/textarea-field-validator.d.ts +8 -0
  135. package/dist/validators/fields/textarea-field-validator.js +15 -0
  136. package/dist/validators/fields/textarea-field-validator.spec.d.ts +1 -0
  137. package/dist/validators/fields/textarea-field-validator.spec.js +52 -0
  138. package/dist/validators/fields/url-field-validator.d.ts +8 -0
  139. package/dist/validators/fields/url-field-validator.js +15 -0
  140. package/dist/validators/fields/url-field-validator.spec.d.ts +1 -0
  141. package/dist/validators/fields/url-field-validator.spec.js +43 -0
  142. package/dist/validators/product-info-validator.spec.js +42 -108
  143. package/package.json +1 -1
  144. package/dist/dtos/product/requests/product-downgradeable-request.dto.d.ts +0 -18
  145. package/dist/dtos/product/requests/product-downgradeable-request.dto.js +0 -37
  146. package/dist/dtos/product/requests/product-upgradeable-request.dto.d.ts +0 -18
  147. package/dist/dtos/product/requests/product-upgradeable-request.dto.js +0 -37
  148. package/dist/dtos/product/responses/product-downgradeable-response.dto.d.ts +0 -22
  149. package/dist/dtos/product/responses/product-downgradeable-response.dto.js +0 -11
  150. package/dist/dtos/product/responses/product-upgradeable-response.dto.d.ts +0 -22
  151. package/dist/dtos/product/responses/product-upgradeable-response.dto.js +0 -11
  152. package/dist/validators/product-downgradeable-request-validator.d.ts +0 -8
  153. package/dist/validators/product-downgradeable-request-validator.js +0 -17
  154. package/dist/validators/product-upgradeable-request-validator.d.ts +0 -8
  155. package/dist/validators/product-upgradeable-request-validator.js +0 -17
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("reflect-metadata");
4
+ const currency_field_validator_1 = require("./currency-field-validator");
5
+ const language_enum_1 = require("../../enums/language.enum");
6
+ const currency_enum_1 = require("../../enums/currency.enum");
7
+ const baseValidDto = {
8
+ id: 'cur-1',
9
+ label: [{ language: language_enum_1.LanguageEnum.ENGLISH, text: 'Currency' }],
10
+ type: 'CURRENCY',
11
+ required: true,
12
+ disabled: false,
13
+ };
14
+ describe('CurrencyFieldDto Validator', () => {
15
+ describe('Valid cases', () => {
16
+ it('should return no errors for a valid minimal DTO', () => {
17
+ expect((0, currency_field_validator_1.validateCurrencyFieldDto)(baseValidDto)).toHaveLength(0);
18
+ });
19
+ it('should return no errors with a valid ISO 4217 value', () => {
20
+ expect((0, currency_field_validator_1.validateCurrencyFieldDto)({ ...baseValidDto, value: currency_enum_1.CurrencyEnum.EUR })).toHaveLength(0);
21
+ });
22
+ });
23
+ describe('Missing required fields', () => {
24
+ it('should return errors for all missing required fields', () => {
25
+ const errors = (0, currency_field_validator_1.validateCurrencyFieldDto)({});
26
+ for (const prop of ['id', 'label', 'required', 'disabled']) {
27
+ expect(errors.some((e) => e.property === prop)).toBe(true);
28
+ }
29
+ });
30
+ });
31
+ describe('Invalid field values', () => {
32
+ it.each([
33
+ [{ ...baseValidDto, type: 'TEXT' }, 'type'],
34
+ [{ ...baseValidDto, value: 'XXX' }, 'value'],
35
+ [{ ...baseValidDto, value: 42 }, 'value'],
36
+ ])('should return error for invalid %#', (dto, expectedProp) => {
37
+ const errors = (0, currency_field_validator_1.validateCurrencyFieldDto)(dto);
38
+ expect(errors.some((e) => e.property === expectedProp)).toBe(true);
39
+ });
40
+ });
41
+ });
@@ -0,0 +1,8 @@
1
+ import { ValidationError } from 'class-validator';
2
+ /**
3
+ * Validates a DateFieldDto object using class-validator decorators.
4
+ *
5
+ * @param data The object to validate as a DateFieldDto.
6
+ * @returns An array of validation errors, empty if validation succeeds.
7
+ */
8
+ export declare function validateDateFieldDto(data: object): ValidationError[];
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateDateFieldDto = validateDateFieldDto;
4
+ const class_validator_1 = require("class-validator");
5
+ const class_transformer_1 = require("class-transformer");
6
+ const date_field_dto_1 = require("../../dtos/fields/date-field.dto");
7
+ /**
8
+ * Validates a DateFieldDto object using class-validator decorators.
9
+ *
10
+ * @param data The object to validate as a DateFieldDto.
11
+ * @returns An array of validation errors, empty if validation succeeds.
12
+ */
13
+ function validateDateFieldDto(data) {
14
+ return (0, class_validator_1.validateSync)((0, class_transformer_1.plainToInstance)(date_field_dto_1.DateFieldDto, data));
15
+ }
@@ -0,0 +1 @@
1
+ import 'reflect-metadata';
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("reflect-metadata");
4
+ const date_field_validator_1 = require("./date-field-validator");
5
+ const language_enum_1 = require("../../enums/language.enum");
6
+ const baseValidDto = {
7
+ id: 'date-1',
8
+ label: [{ language: language_enum_1.LanguageEnum.ENGLISH, text: 'Start Date' }],
9
+ type: 'DATE',
10
+ required: true,
11
+ disabled: false,
12
+ };
13
+ describe('DateFieldDto Validator', () => {
14
+ describe('Valid cases', () => {
15
+ it('should return no errors for a valid minimal DTO', () => {
16
+ expect((0, date_field_validator_1.validateDateFieldDto)(baseValidDto)).toHaveLength(0);
17
+ });
18
+ it('should return no errors with an ISO 8601 value', () => {
19
+ expect((0, date_field_validator_1.validateDateFieldDto)({
20
+ ...baseValidDto,
21
+ value: '2026-05-26T10:30:00Z',
22
+ })).toHaveLength(0);
23
+ });
24
+ });
25
+ describe('Missing required fields', () => {
26
+ it('should return errors for all missing required fields', () => {
27
+ const errors = (0, date_field_validator_1.validateDateFieldDto)({});
28
+ for (const prop of ['id', 'label', 'required', 'disabled']) {
29
+ expect(errors.some((e) => e.property === prop)).toBe(true);
30
+ }
31
+ });
32
+ });
33
+ describe('Invalid field values', () => {
34
+ it.each([
35
+ [{ ...baseValidDto, type: 'TEXT' }, 'type'],
36
+ [{ ...baseValidDto, value: '26/05/2026' }, 'value'],
37
+ [{ ...baseValidDto, value: 'not a date' }, 'value'],
38
+ ])('should return error for invalid %#', (dto, expectedProp) => {
39
+ const errors = (0, date_field_validator_1.validateDateFieldDto)(dto);
40
+ expect(errors.some((e) => e.property === expectedProp)).toBe(true);
41
+ });
42
+ });
43
+ });
@@ -0,0 +1,8 @@
1
+ import { ValidationError } from 'class-validator';
2
+ /**
3
+ * Validates an EmailFieldDto object using class-validator decorators.
4
+ *
5
+ * @param data The object to validate as an EmailFieldDto.
6
+ * @returns An array of validation errors, empty if validation succeeds.
7
+ */
8
+ export declare function validateEmailFieldDto(data: object): ValidationError[];
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateEmailFieldDto = validateEmailFieldDto;
4
+ const class_validator_1 = require("class-validator");
5
+ const class_transformer_1 = require("class-transformer");
6
+ const email_field_dto_1 = require("../../dtos/fields/email-field.dto");
7
+ /**
8
+ * Validates an EmailFieldDto object using class-validator decorators.
9
+ *
10
+ * @param data The object to validate as an EmailFieldDto.
11
+ * @returns An array of validation errors, empty if validation succeeds.
12
+ */
13
+ function validateEmailFieldDto(data) {
14
+ return (0, class_validator_1.validateSync)((0, class_transformer_1.plainToInstance)(email_field_dto_1.EmailFieldDto, data));
15
+ }
@@ -0,0 +1 @@
1
+ import 'reflect-metadata';
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("reflect-metadata");
4
+ const email_field_validator_1 = require("./email-field-validator");
5
+ const language_enum_1 = require("../../enums/language.enum");
6
+ const baseValidDto = {
7
+ id: 'email-1',
8
+ label: [{ language: language_enum_1.LanguageEnum.ENGLISH, text: 'Email' }],
9
+ type: 'EMAIL',
10
+ required: true,
11
+ disabled: false,
12
+ };
13
+ describe('EmailFieldDto Validator', () => {
14
+ describe('Valid cases', () => {
15
+ it('should return no errors for a valid minimal DTO', () => {
16
+ expect((0, email_field_validator_1.validateEmailFieldDto)(baseValidDto)).toHaveLength(0);
17
+ });
18
+ it('should return no errors with a valid email value', () => {
19
+ expect((0, email_field_validator_1.validateEmailFieldDto)({
20
+ ...baseValidDto,
21
+ value: 'foo@example.com',
22
+ })).toHaveLength(0);
23
+ });
24
+ });
25
+ describe('Missing required fields', () => {
26
+ it('should return errors for all missing required fields', () => {
27
+ const errors = (0, email_field_validator_1.validateEmailFieldDto)({});
28
+ for (const prop of ['id', 'label', 'required', 'disabled']) {
29
+ expect(errors.some((e) => e.property === prop)).toBe(true);
30
+ }
31
+ });
32
+ });
33
+ describe('Invalid field values', () => {
34
+ it.each([
35
+ [{ ...baseValidDto, type: 'TEXT' }, 'type'],
36
+ [{ ...baseValidDto, value: 'not-an-email' }, 'value'],
37
+ [{ ...baseValidDto, value: 42 }, 'value'],
38
+ ])('should return error for invalid %#', (dto, expectedProp) => {
39
+ const errors = (0, email_field_validator_1.validateEmailFieldDto)(dto);
40
+ expect(errors.some((e) => e.property === expectedProp)).toBe(true);
41
+ });
42
+ });
43
+ });
@@ -0,0 +1,8 @@
1
+ import { ValidationError } from 'class-validator';
2
+ /**
3
+ * Validates a MultiSelectFieldDto object using class-validator decorators.
4
+ *
5
+ * @param data The object to validate as a MultiSelectFieldDto.
6
+ * @returns An array of validation errors, empty if validation succeeds.
7
+ */
8
+ export declare function validateMultiSelectFieldDto(data: object): ValidationError[];
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateMultiSelectFieldDto = validateMultiSelectFieldDto;
4
+ const class_validator_1 = require("class-validator");
5
+ const class_transformer_1 = require("class-transformer");
6
+ const multi_select_field_dto_1 = require("../../dtos/fields/multi-select-field.dto");
7
+ /**
8
+ * Validates a MultiSelectFieldDto object using class-validator decorators.
9
+ *
10
+ * @param data The object to validate as a MultiSelectFieldDto.
11
+ * @returns An array of validation errors, empty if validation succeeds.
12
+ */
13
+ function validateMultiSelectFieldDto(data) {
14
+ return (0, class_validator_1.validateSync)((0, class_transformer_1.plainToInstance)(multi_select_field_dto_1.MultiSelectFieldDto, data));
15
+ }
@@ -0,0 +1 @@
1
+ import 'reflect-metadata';
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("reflect-metadata");
4
+ const multi_select_field_validator_1 = require("./multi-select-field-validator");
5
+ const language_enum_1 = require("../../enums/language.enum");
6
+ const baseValidDto = {
7
+ id: 'msel-1',
8
+ label: [{ language: language_enum_1.LanguageEnum.ENGLISH, text: 'Features' }],
9
+ type: 'MULTI_SELECT',
10
+ required: true,
11
+ disabled: false,
12
+ };
13
+ describe('MultiSelectFieldDto Validator', () => {
14
+ describe('Valid cases', () => {
15
+ it('should return no errors for a valid minimal DTO', () => {
16
+ expect((0, multi_select_field_validator_1.validateMultiSelectFieldDto)(baseValidDto)).toHaveLength(0);
17
+ });
18
+ it('should return no errors with a valid options value', () => {
19
+ expect((0, multi_select_field_validator_1.validateMultiSelectFieldDto)({
20
+ ...baseValidDto,
21
+ value: [
22
+ { key: 'ssl', value: 'SSL' },
23
+ { key: 'backups', value: 'Backups' },
24
+ ],
25
+ })).toHaveLength(0);
26
+ });
27
+ });
28
+ describe('Missing required fields', () => {
29
+ it('should return errors for all missing required fields', () => {
30
+ const errors = (0, multi_select_field_validator_1.validateMultiSelectFieldDto)({});
31
+ for (const prop of ['id', 'label', 'required', 'disabled']) {
32
+ expect(errors.some((e) => e.property === prop)).toBe(true);
33
+ }
34
+ });
35
+ });
36
+ describe('Invalid field values', () => {
37
+ it('should return error for wrong type literal', () => {
38
+ const errors = (0, multi_select_field_validator_1.validateMultiSelectFieldDto)({
39
+ ...baseValidDto,
40
+ type: 'SELECT',
41
+ });
42
+ expect(errors.some((e) => e.property === 'type')).toBe(true);
43
+ });
44
+ it('should return error when value is not an array', () => {
45
+ const errors = (0, multi_select_field_validator_1.validateMultiSelectFieldDto)({
46
+ ...baseValidDto,
47
+ value: { key: 'a', value: 'A' },
48
+ });
49
+ expect(errors.some((e) => e.property === 'value')).toBe(true);
50
+ });
51
+ });
52
+ });
@@ -0,0 +1,8 @@
1
+ import { ValidationError } from 'class-validator';
2
+ /**
3
+ * Validates a NumberFieldDto object using class-validator decorators.
4
+ *
5
+ * @param data The object to validate as a NumberFieldDto.
6
+ * @returns An array of validation errors, empty if validation succeeds.
7
+ */
8
+ export declare function validateNumberFieldDto(data: object): ValidationError[];
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateNumberFieldDto = validateNumberFieldDto;
4
+ const class_validator_1 = require("class-validator");
5
+ const class_transformer_1 = require("class-transformer");
6
+ const number_field_dto_1 = require("../../dtos/fields/number-field.dto");
7
+ /**
8
+ * Validates a NumberFieldDto object using class-validator decorators.
9
+ *
10
+ * @param data The object to validate as a NumberFieldDto.
11
+ * @returns An array of validation errors, empty if validation succeeds.
12
+ */
13
+ function validateNumberFieldDto(data) {
14
+ return (0, class_validator_1.validateSync)((0, class_transformer_1.plainToInstance)(number_field_dto_1.NumberFieldDto, data));
15
+ }
@@ -0,0 +1 @@
1
+ import 'reflect-metadata';
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("reflect-metadata");
4
+ const number_field_validator_1 = require("./number-field-validator");
5
+ const language_enum_1 = require("../../enums/language.enum");
6
+ const baseValidDto = {
7
+ id: 'num-1',
8
+ label: [{ language: language_enum_1.LanguageEnum.ENGLISH, text: 'CPU Cores' }],
9
+ type: 'NUMBER',
10
+ required: true,
11
+ disabled: false,
12
+ };
13
+ describe('NumberFieldDto Validator', () => {
14
+ describe('Valid cases', () => {
15
+ it('should return no errors for a valid minimal DTO', () => {
16
+ expect((0, number_field_validator_1.validateNumberFieldDto)(baseValidDto)).toHaveLength(0);
17
+ });
18
+ it('should return no errors with value, min, max, integer', () => {
19
+ expect((0, number_field_validator_1.validateNumberFieldDto)({
20
+ ...baseValidDto,
21
+ value: 4,
22
+ min: 1,
23
+ max: 16,
24
+ integer: true,
25
+ })).toHaveLength(0);
26
+ });
27
+ it('should return no errors when min equals max', () => {
28
+ expect((0, number_field_validator_1.validateNumberFieldDto)({ ...baseValidDto, min: 5, max: 5 })).toHaveLength(0);
29
+ });
30
+ });
31
+ describe('Missing required fields', () => {
32
+ it('should return errors for all missing required fields', () => {
33
+ const errors = (0, number_field_validator_1.validateNumberFieldDto)({});
34
+ for (const prop of ['id', 'label', 'required', 'disabled']) {
35
+ expect(errors.some((e) => e.property === prop)).toBe(true);
36
+ }
37
+ });
38
+ });
39
+ describe('Invalid field values', () => {
40
+ it.each([
41
+ [{ ...baseValidDto, type: 'TEXT' }, 'type'],
42
+ [{ ...baseValidDto, value: 'four' }, 'value'],
43
+ [{ ...baseValidDto, min: 'one' }, 'min'],
44
+ [{ ...baseValidDto, max: 'two' }, 'max'],
45
+ [{ ...baseValidDto, integer: 'yes' }, 'integer'],
46
+ ])('should return error for invalid %#', (dto, expectedProp) => {
47
+ const errors = (0, number_field_validator_1.validateNumberFieldDto)(dto);
48
+ expect(errors.some((e) => e.property === expectedProp)).toBe(true);
49
+ });
50
+ it('should return error when min is greater than max', () => {
51
+ const errors = (0, number_field_validator_1.validateNumberFieldDto)({
52
+ ...baseValidDto,
53
+ min: 10,
54
+ max: 5,
55
+ });
56
+ expect(errors.length).toBeGreaterThan(0);
57
+ });
58
+ });
59
+ });
@@ -0,0 +1,8 @@
1
+ import { ValidationError } from 'class-validator';
2
+ /**
3
+ * Validates a PasswordFieldDto object using class-validator decorators.
4
+ *
5
+ * @param data The object to validate as a PasswordFieldDto.
6
+ * @returns An array of validation errors, empty if validation succeeds.
7
+ */
8
+ export declare function validatePasswordFieldDto(data: object): ValidationError[];
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validatePasswordFieldDto = validatePasswordFieldDto;
4
+ const class_validator_1 = require("class-validator");
5
+ const class_transformer_1 = require("class-transformer");
6
+ const password_field_dto_1 = require("../../dtos/fields/password-field.dto");
7
+ /**
8
+ * Validates a PasswordFieldDto object using class-validator decorators.
9
+ *
10
+ * @param data The object to validate as a PasswordFieldDto.
11
+ * @returns An array of validation errors, empty if validation succeeds.
12
+ */
13
+ function validatePasswordFieldDto(data) {
14
+ return (0, class_validator_1.validateSync)((0, class_transformer_1.plainToInstance)(password_field_dto_1.PasswordFieldDto, data));
15
+ }
@@ -0,0 +1 @@
1
+ import 'reflect-metadata';
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("reflect-metadata");
4
+ const password_field_validator_1 = require("./password-field-validator");
5
+ const language_enum_1 = require("../../enums/language.enum");
6
+ const baseValidDto = {
7
+ id: 'pwd-1',
8
+ label: [{ language: language_enum_1.LanguageEnum.ENGLISH, text: 'Password' }],
9
+ type: 'PASSWORD',
10
+ required: true,
11
+ disabled: false,
12
+ };
13
+ describe('PasswordFieldDto Validator', () => {
14
+ describe('Valid cases', () => {
15
+ it('should return no errors for a valid minimal DTO', () => {
16
+ expect((0, password_field_validator_1.validatePasswordFieldDto)(baseValidDto)).toHaveLength(0);
17
+ });
18
+ it('should return no errors with value and minLength', () => {
19
+ expect((0, password_field_validator_1.validatePasswordFieldDto)({
20
+ ...baseValidDto,
21
+ value: 's3cret!',
22
+ minLength: 6,
23
+ })).toHaveLength(0);
24
+ });
25
+ });
26
+ describe('Missing required fields', () => {
27
+ it('should return errors for all missing required fields', () => {
28
+ const errors = (0, password_field_validator_1.validatePasswordFieldDto)({});
29
+ for (const prop of ['id', 'label', 'required', 'disabled']) {
30
+ expect(errors.some((e) => e.property === prop)).toBe(true);
31
+ }
32
+ });
33
+ });
34
+ describe('Invalid field values', () => {
35
+ it.each([
36
+ [{ ...baseValidDto, type: 'TEXT' }, 'type'],
37
+ [{ ...baseValidDto, value: 1234 }, 'value'],
38
+ [{ ...baseValidDto, minLength: -1 }, 'minLength'],
39
+ ])('should return error for invalid %#', (dto, expectedProp) => {
40
+ const errors = (0, password_field_validator_1.validatePasswordFieldDto)(dto);
41
+ expect(errors.some((e) => e.property === expectedProp)).toBe(true);
42
+ });
43
+ });
44
+ });
@@ -0,0 +1,8 @@
1
+ import { ValidationError } from 'class-validator';
2
+ /**
3
+ * Validates a PhoneFieldDto object using class-validator decorators.
4
+ *
5
+ * @param data The object to validate as a PhoneFieldDto.
6
+ * @returns An array of validation errors, empty if validation succeeds.
7
+ */
8
+ export declare function validatePhoneFieldDto(data: object): ValidationError[];
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validatePhoneFieldDto = validatePhoneFieldDto;
4
+ const class_validator_1 = require("class-validator");
5
+ const class_transformer_1 = require("class-transformer");
6
+ const phone_field_dto_1 = require("../../dtos/fields/phone-field.dto");
7
+ /**
8
+ * Validates a PhoneFieldDto object using class-validator decorators.
9
+ *
10
+ * @param data The object to validate as a PhoneFieldDto.
11
+ * @returns An array of validation errors, empty if validation succeeds.
12
+ */
13
+ function validatePhoneFieldDto(data) {
14
+ return (0, class_validator_1.validateSync)((0, class_transformer_1.plainToInstance)(phone_field_dto_1.PhoneFieldDto, data));
15
+ }
@@ -0,0 +1 @@
1
+ import 'reflect-metadata';
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("reflect-metadata");
4
+ const phone_field_validator_1 = require("./phone-field-validator");
5
+ const language_enum_1 = require("../../enums/language.enum");
6
+ const baseValidDto = {
7
+ id: 'phone-1',
8
+ label: [{ language: language_enum_1.LanguageEnum.ENGLISH, text: 'Phone' }],
9
+ type: 'PHONE',
10
+ required: true,
11
+ disabled: false,
12
+ };
13
+ describe('PhoneFieldDto Validator', () => {
14
+ describe('Valid cases', () => {
15
+ it('should return no errors for a valid minimal DTO', () => {
16
+ expect((0, phone_field_validator_1.validatePhoneFieldDto)(baseValidDto)).toHaveLength(0);
17
+ });
18
+ it('should return no errors with a canonical E.164 value', () => {
19
+ expect((0, phone_field_validator_1.validatePhoneFieldDto)({ ...baseValidDto, value: '+14155552671' })).toHaveLength(0);
20
+ });
21
+ });
22
+ describe('Missing required fields', () => {
23
+ it('should return errors for all missing required fields', () => {
24
+ const errors = (0, phone_field_validator_1.validatePhoneFieldDto)({});
25
+ for (const prop of ['id', 'label', 'required', 'disabled']) {
26
+ expect(errors.some((e) => e.property === prop)).toBe(true);
27
+ }
28
+ });
29
+ });
30
+ describe('Invalid field values', () => {
31
+ it.each([
32
+ [{ ...baseValidDto, type: 'TEXT' }, 'type'],
33
+ [{ ...baseValidDto, value: '14155552671' }, 'value'],
34
+ [{ ...baseValidDto, value: '+1 415 555 2671' }, 'value'],
35
+ [{ ...baseValidDto, value: 'not-a-phone' }, 'value'],
36
+ ])('should return error for invalid %#', (dto, expectedProp) => {
37
+ const errors = (0, phone_field_validator_1.validatePhoneFieldDto)(dto);
38
+ expect(errors.some((e) => e.property === expectedProp)).toBe(true);
39
+ });
40
+ });
41
+ });
@@ -0,0 +1,8 @@
1
+ import { ValidationError } from 'class-validator';
2
+ /**
3
+ * Validates a SelectFieldDto object using class-validator decorators.
4
+ *
5
+ * @param data The object to validate as a SelectFieldDto.
6
+ * @returns An array of validation errors, empty if validation succeeds.
7
+ */
8
+ export declare function validateSelectFieldDto(data: object): ValidationError[];
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateSelectFieldDto = validateSelectFieldDto;
4
+ const class_validator_1 = require("class-validator");
5
+ const class_transformer_1 = require("class-transformer");
6
+ const select_field_dto_1 = require("../../dtos/fields/select-field.dto");
7
+ /**
8
+ * Validates a SelectFieldDto object using class-validator decorators.
9
+ *
10
+ * @param data The object to validate as a SelectFieldDto.
11
+ * @returns An array of validation errors, empty if validation succeeds.
12
+ */
13
+ function validateSelectFieldDto(data) {
14
+ return (0, class_validator_1.validateSync)((0, class_transformer_1.plainToInstance)(select_field_dto_1.SelectFieldDto, data));
15
+ }
@@ -0,0 +1 @@
1
+ import 'reflect-metadata';
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("reflect-metadata");
4
+ const select_field_validator_1 = require("./select-field-validator");
5
+ const language_enum_1 = require("../../enums/language.enum");
6
+ const baseValidDto = {
7
+ id: 'sel-1',
8
+ label: [{ language: language_enum_1.LanguageEnum.ENGLISH, text: 'Plan' }],
9
+ type: 'SELECT',
10
+ required: true,
11
+ disabled: false,
12
+ };
13
+ describe('SelectFieldDto Validator', () => {
14
+ describe('Valid cases', () => {
15
+ it('should return no errors for a valid minimal DTO', () => {
16
+ expect((0, select_field_validator_1.validateSelectFieldDto)(baseValidDto)).toHaveLength(0);
17
+ });
18
+ it('should return no errors with a valid option value', () => {
19
+ expect((0, select_field_validator_1.validateSelectFieldDto)({
20
+ ...baseValidDto,
21
+ value: { key: 'basic', value: 'Basic' },
22
+ })).toHaveLength(0);
23
+ });
24
+ });
25
+ describe('Missing required fields', () => {
26
+ it('should return errors for all missing required fields', () => {
27
+ const errors = (0, select_field_validator_1.validateSelectFieldDto)({});
28
+ for (const prop of ['id', 'label', 'required', 'disabled']) {
29
+ expect(errors.some((e) => e.property === prop)).toBe(true);
30
+ }
31
+ });
32
+ });
33
+ describe('Invalid field values', () => {
34
+ it('should return error for wrong type literal', () => {
35
+ const errors = (0, select_field_validator_1.validateSelectFieldDto)({ ...baseValidDto, type: 'TEXT' });
36
+ expect(errors.some((e) => e.property === 'type')).toBe(true);
37
+ });
38
+ it('should return error for option missing required key', () => {
39
+ const errors = (0, select_field_validator_1.validateSelectFieldDto)({
40
+ ...baseValidDto,
41
+ value: { value: 'No Key' },
42
+ });
43
+ expect(errors.some((e) => e.property === 'value')).toBe(true);
44
+ });
45
+ });
46
+ });
@@ -0,0 +1,8 @@
1
+ import { ValidationError } from 'class-validator';
2
+ /**
3
+ * Validates a TextFieldDto object using class-validator decorators.
4
+ *
5
+ * @param data The object to validate as a TextFieldDto.
6
+ * @returns An array of validation errors, empty if validation succeeds.
7
+ */
8
+ export declare function validateTextFieldDto(data: object): ValidationError[];
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateTextFieldDto = validateTextFieldDto;
4
+ const class_validator_1 = require("class-validator");
5
+ const class_transformer_1 = require("class-transformer");
6
+ const text_field_dto_1 = require("../../dtos/fields/text-field.dto");
7
+ /**
8
+ * Validates a TextFieldDto object using class-validator decorators.
9
+ *
10
+ * @param data The object to validate as a TextFieldDto.
11
+ * @returns An array of validation errors, empty if validation succeeds.
12
+ */
13
+ function validateTextFieldDto(data) {
14
+ return (0, class_validator_1.validateSync)((0, class_transformer_1.plainToInstance)(text_field_dto_1.TextFieldDto, data));
15
+ }
@@ -0,0 +1 @@
1
+ import 'reflect-metadata';