@hosterai/types 0.0.17 → 0.0.19

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 (194) hide show
  1. package/README.md +12 -9
  2. package/dist/decorators/all-or-none-validator.spec.d.ts +1 -0
  3. package/dist/decorators/all-or-none-validator.spec.js +91 -0
  4. package/dist/decorators/all-or-none.validator.d.ts +2 -0
  5. package/dist/decorators/all-or-none.validator.js +71 -0
  6. package/dist/decorators/at-least-one-non-empty-validator.spec.d.ts +1 -0
  7. package/dist/decorators/at-least-one-non-empty-validator.spec.js +79 -0
  8. package/dist/decorators/at-least-one-non-empty.validator.d.ts +2 -0
  9. package/dist/decorators/at-least-one-non-empty.validator.js +43 -0
  10. package/dist/decorators/is-of-allowed-types-validator.spec.d.ts +1 -0
  11. package/dist/decorators/is-of-allowed-types-validator.spec.js +188 -0
  12. package/dist/decorators/is-of-allowed-types.validator.d.ts +16 -0
  13. package/dist/decorators/is-of-allowed-types.validator.js +105 -0
  14. package/dist/decorators/is-one-of-validator.spec.d.ts +1 -0
  15. package/dist/decorators/is-one-of-validator.spec.js +51 -0
  16. package/dist/decorators/is-one-of.validator.d.ts +2 -0
  17. package/dist/decorators/is-one-of.validator.js +19 -0
  18. package/dist/decorators/is-plain-object-validator.spec.d.ts +1 -0
  19. package/dist/decorators/is-plain-object-validator.spec.js +46 -0
  20. package/dist/decorators/is-plain-object.validator.d.ts +2 -0
  21. package/dist/decorators/is-plain-object.validator.js +30 -0
  22. package/dist/decorators/is-property-forbidden-validator.spec.d.ts +1 -0
  23. package/dist/decorators/is-property-forbidden-validator.spec.js +62 -0
  24. package/dist/decorators/is-property-forbidden.validator.d.ts +2 -0
  25. package/dist/decorators/is-property-forbidden.validator.js +22 -0
  26. package/dist/decorators/is-regex-validator.spec.d.ts +1 -0
  27. package/dist/decorators/is-regex-validator.spec.js +46 -0
  28. package/dist/decorators/is-regex.validator.d.ts +2 -0
  29. package/dist/decorators/is-regex.validator.js +32 -0
  30. package/dist/decorators/min-less-or-equal-validator.spec.d.ts +1 -0
  31. package/dist/decorators/min-less-or-equal-validator.spec.js +60 -0
  32. package/dist/decorators/min-less-or-equal.validator.d.ts +2 -0
  33. package/dist/decorators/min-less-or-equal.validator.js +58 -0
  34. package/dist/decorators/unique-field-in-array-validator.spec.d.ts +1 -0
  35. package/dist/decorators/unique-field-in-array-validator.spec.js +39 -0
  36. package/dist/decorators/unique-field-in-array.validator.d.ts +6 -0
  37. package/dist/decorators/unique-field-in-array.validator.js +47 -0
  38. package/dist/dtos/action.dto.js +25 -1
  39. package/dist/dtos/admin-panel.dto.d.ts +38 -0
  40. package/dist/dtos/admin-panel.dto.js +241 -0
  41. package/dist/dtos/client-panel.dto.d.ts +24 -0
  42. package/dist/dtos/client-panel.dto.js +105 -0
  43. package/dist/dtos/company-data.dto.js +1 -1
  44. package/dist/dtos/field-option.dto.js +16 -0
  45. package/dist/dtos/field.dto.d.ts +2 -0
  46. package/dist/dtos/field.dto.js +112 -2
  47. package/dist/dtos/info.dto.d.ts +4 -79
  48. package/dist/dtos/info.dto.js +141 -0
  49. package/dist/dtos/menu.dto.d.ts +5 -6
  50. package/dist/dtos/menu.dto.js +108 -0
  51. package/dist/dtos/multilang-text.dto.js +1 -1
  52. package/dist/dtos/notification/notification-info.dto.js +42 -0
  53. package/dist/dtos/product/product-info.dto.js +73 -0
  54. package/dist/dtos/product/requests/product-downgradeable-request.dto.d.ts +18 -0
  55. package/dist/dtos/product/requests/product-downgradeable-request.dto.js +37 -0
  56. package/dist/dtos/product/requests/product-upgradeable-request.dto.d.ts +18 -0
  57. package/dist/dtos/product/requests/product-upgradeable-request.dto.js +37 -0
  58. package/dist/dtos/product/responses/product-downgradeable-response.dto.d.ts +22 -0
  59. package/dist/dtos/product/responses/product-downgradeable-response.dto.js +11 -0
  60. package/dist/dtos/product/responses/product-upgradeable-response.dto.d.ts +22 -0
  61. package/dist/dtos/product/responses/product-upgradeable-response.dto.js +11 -0
  62. package/dist/dtos/settings.dto.d.ts +14 -0
  63. package/dist/dtos/settings.dto.js +81 -0
  64. package/dist/dtos/tab.dto.js +32 -0
  65. package/dist/dtos/unit.dto.js +47 -0
  66. package/dist/index.d.ts +23 -7
  67. package/dist/index.js +26 -7
  68. package/dist/openapi/schemas/components.schemas.d.ts +991 -0
  69. package/dist/openapi/schemas/components.schemas.js +2552 -0
  70. package/dist/transformers/menu.transformer.d.ts +2 -0
  71. package/dist/transformers/menu.transformer.js +16 -0
  72. package/dist/transformers/settings.transformer.d.ts +1 -0
  73. package/dist/transformers/settings.transformer.js +15 -0
  74. package/dist/validators/action-validator.spec.d.ts +1 -0
  75. package/dist/validators/action-validator.spec.js +67 -0
  76. package/dist/validators/admin-panel-more-actions-validator.spec.d.ts +1 -0
  77. package/dist/validators/admin-panel-more-actions-validator.spec.js +129 -0
  78. package/dist/validators/admin-panel-more-actions.validator.d.ts +2 -0
  79. package/dist/validators/admin-panel-more-actions.validator.js +11 -0
  80. package/dist/validators/admin-panel-tabs-validator.spec.d.ts +1 -0
  81. package/dist/validators/admin-panel-tabs-validator.spec.js +39 -0
  82. package/dist/validators/admin-panel-tabs.validator.d.ts +2 -0
  83. package/dist/validators/admin-panel-tabs.validator.js +11 -0
  84. package/dist/validators/admin-panel-validator.spec.d.ts +1 -0
  85. package/dist/validators/admin-panel-validator.spec.js +112 -0
  86. package/dist/validators/admin-panel.validator.d.ts +2 -0
  87. package/dist/validators/admin-panel.validator.js +14 -0
  88. package/dist/validators/client-data-validator.spec.d.ts +1 -0
  89. package/dist/validators/client-data-validator.spec.js +35 -0
  90. package/dist/validators/client-panel-validator.spec.d.ts +1 -0
  91. package/dist/validators/client-panel-validator.spec.js +51 -0
  92. package/dist/validators/client-panel.validator.d.ts +2 -0
  93. package/dist/validators/client-panel.validator.js +14 -0
  94. package/dist/validators/company-data-validator.spec.d.ts +1 -0
  95. package/dist/validators/company-data-validator.spec.js +73 -0
  96. package/dist/validators/field-option-validator.spec.d.ts +1 -0
  97. package/dist/validators/field-option-validator.spec.js +28 -0
  98. package/dist/validators/field-option.validator.d.ts +2 -0
  99. package/dist/validators/field-option.validator.js +11 -0
  100. package/dist/validators/field-validator.spec.d.ts +1 -0
  101. package/dist/validators/field-validator.spec.js +102 -0
  102. package/dist/validators/jwt-validator.spec.d.ts +2 -0
  103. package/dist/validators/jwt-validator.spec.js +43 -0
  104. package/dist/validators/menu-with-submenu-validator.spec.d.ts +1 -0
  105. package/dist/validators/menu-with-submenu-validator.spec.js +52 -0
  106. package/dist/validators/menu-with-submenu.validator.d.ts +2 -0
  107. package/dist/validators/menu-with-submenu.validator.js +11 -0
  108. package/dist/validators/menu-with-url-validator.spec.d.ts +1 -0
  109. package/dist/validators/menu-with-url-validator.spec.js +70 -0
  110. package/dist/validators/menu-with-url.validator.d.ts +2 -0
  111. package/dist/validators/menu-with-url.validator.js +11 -0
  112. package/dist/validators/multilang-text-validator.spec.d.ts +1 -0
  113. package/dist/validators/multilang-text-validator.spec.js +33 -0
  114. package/dist/validators/notification-info-validator.spec.d.ts +1 -0
  115. package/dist/validators/notification-info-validator.spec.js +82 -0
  116. package/dist/validators/notification-info.validator.d.ts +7 -0
  117. package/dist/validators/notification-info.validator.js +16 -0
  118. package/dist/validators/notification-request-validator.spec.d.ts +1 -0
  119. package/dist/validators/notification-request-validator.spec.js +115 -0
  120. package/dist/validators/product-create-request-validator.spec.d.ts +2 -0
  121. package/dist/validators/product-create-request-validator.spec.js +44 -0
  122. package/dist/validators/product-delete-request-validator.spec.d.ts +1 -0
  123. package/dist/validators/product-delete-request-validator.spec.js +40 -0
  124. package/dist/validators/product-downgradable-request-validator.spec.d.ts +1 -0
  125. package/dist/validators/product-downgradable-request-validator.spec.js +40 -0
  126. package/dist/validators/product-downgrade-request-validator.spec.d.ts +1 -0
  127. package/dist/validators/product-downgrade-request-validator.spec.js +46 -0
  128. package/dist/validators/product-downgradeable-request-validator.d.ts +8 -0
  129. package/dist/validators/product-downgradeable-request-validator.js +17 -0
  130. package/dist/validators/product-info-validator.spec.d.ts +1 -0
  131. package/dist/validators/product-info-validator.spec.js +259 -0
  132. package/dist/validators/product-info.validator.d.ts +2 -0
  133. package/dist/validators/product-info.validator.js +11 -0
  134. package/dist/validators/product-renew-request-validator.spec.d.ts +1 -0
  135. package/dist/validators/product-renew-request-validator.spec.js +40 -0
  136. package/dist/validators/product-suspend-request-validator.spec.d.ts +1 -0
  137. package/dist/validators/product-suspend-request-validator.spec.js +40 -0
  138. package/dist/validators/product-unsuspend-request-validator.spec.d.ts +1 -0
  139. package/dist/validators/product-unsuspend-request-validator.spec.js +40 -0
  140. package/dist/validators/product-upgradable-request-validator.spec.d.ts +1 -0
  141. package/dist/validators/product-upgradable-request-validator.spec.js +40 -0
  142. package/dist/validators/product-upgrade-request-validator.spec.d.ts +1 -0
  143. package/dist/validators/product-upgrade-request-validator.spec.js +46 -0
  144. package/dist/validators/product-upgradeable-request-validator.d.ts +8 -0
  145. package/dist/validators/product-upgradeable-request-validator.js +17 -0
  146. package/dist/validators/product-validate-attributes-request-validator.spec.d.ts +1 -0
  147. package/dist/validators/product-validate-attributes-request-validator.spec.js +27 -0
  148. package/dist/validators/receiver-email-validator.spec.d.ts +1 -0
  149. package/dist/validators/receiver-email-validator.spec.js +32 -0
  150. package/dist/validators/receiver-push-validator.spec.d.ts +1 -0
  151. package/dist/validators/receiver-push-validator.spec.js +31 -0
  152. package/dist/validators/receiver-sms-validator.spec.d.ts +1 -0
  153. package/dist/validators/receiver-sms-validator.spec.js +29 -0
  154. package/dist/validators/sender-email-validator.spec.d.ts +2 -0
  155. package/dist/validators/sender-email-validator.spec.js +62 -0
  156. package/dist/validators/sender-push-validator.spec.d.ts +1 -0
  157. package/dist/validators/sender-push-validator.spec.js +38 -0
  158. package/dist/validators/sender-sms-validator.spec.d.ts +1 -0
  159. package/dist/validators/sender-sms-validator.spec.js +22 -0
  160. package/dist/validators/settings-with-tabs-validator.spec.d.ts +1 -0
  161. package/dist/validators/settings-with-tabs-validator.spec.js +29 -0
  162. package/dist/validators/settings-with-tabs.validator.d.ts +2 -0
  163. package/dist/validators/settings-with-tabs.validator.js +11 -0
  164. package/dist/validators/settings-with-url-validator.spec.d.ts +1 -0
  165. package/dist/validators/settings-with-url-validator.spec.js +29 -0
  166. package/dist/validators/settings-with-url.validator.d.ts +2 -0
  167. package/dist/validators/settings-with-url.validator.js +11 -0
  168. package/dist/validators/unit-validator.spec.d.ts +1 -0
  169. package/dist/validators/unit-validator.spec.js +27 -0
  170. package/dist/validators/unit.validator.d.ts +2 -0
  171. package/dist/validators/unit.validator.js +11 -0
  172. package/package.json +4 -1
  173. package/dist/dtos/info/info-notification.dto.d.ts +0 -5
  174. package/dist/dtos/info/info-notification.dto.js +0 -7
  175. package/dist/dtos/info/info.dto.d.ts +0 -196
  176. package/dist/dtos/info/info.dto.js +0 -278
  177. package/dist/dtos/notification/notification-request.dto.d.ts +0 -20
  178. package/dist/dtos/notification/notification-request.dto.js +0 -31
  179. package/dist/dtos/receiver/receiver-email.dto.d.ts +0 -20
  180. package/dist/dtos/receiver/receiver-email.dto.js +0 -39
  181. package/dist/dtos/receiver/receiver-push.dto.d.ts +0 -15
  182. package/dist/dtos/receiver/receiver-push.dto.js +0 -31
  183. package/dist/dtos/receiver/receiver-sms.dto.d.ts +0 -11
  184. package/dist/dtos/receiver/receiver-sms.dto.js +0 -26
  185. package/dist/dtos/request.dto.d.ts +0 -20
  186. package/dist/dtos/request.dto.js +0 -31
  187. package/dist/dtos/sender/sender-email.dto.d.ts +0 -25
  188. package/dist/dtos/sender/sender-email.dto.js +0 -46
  189. package/dist/dtos/sender/sender-push.dto.d.ts +0 -31
  190. package/dist/dtos/sender/sender-push.dto.js +0 -50
  191. package/dist/dtos/sender/sender-sms.dto.d.ts +0 -15
  192. package/dist/dtos/sender/sender-sms.dto.js +0 -30
  193. package/dist/enums/message-type.enum.d.ts +0 -5
  194. package/dist/enums/message-type.enum.js +0 -9
@@ -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 product_upgrade_request_validator_1 = require("./product-upgrade-request-validator");
5
+ const country_enum_1 = require("../enums/country.enum");
6
+ const duration_enum_1 = require("../enums/duration.enum");
7
+ describe('validateProductUpgradeRequestDto', () => {
8
+ it('should return no errors for a valid request', async () => {
9
+ const validRequest = {
10
+ clientData: {
11
+ email: 'test@example.com',
12
+ firstName: 'John',
13
+ lastName: 'Doe',
14
+ telephone: '+14155552671',
15
+ address1: '123 Main St',
16
+ postcode: '12345',
17
+ city: 'Anytown',
18
+ country: country_enum_1.CountryEnum.UNITED_STATES,
19
+ },
20
+ itemData: {
21
+ itemId: 'item-123',
22
+ productAttributes: { key: 'value' },
23
+ itemAttributes: { key: 'value' },
24
+ duration: duration_enum_1.DurationEnum.ONE_MONTH,
25
+ },
26
+ previousItemData: {
27
+ itemId: 'item-123',
28
+ productAttributes: { key: 'value' },
29
+ itemAttributes: { key: 'value' },
30
+ duration: duration_enum_1.DurationEnum.ONE_MONTH,
31
+ },
32
+ };
33
+ const errors = await (0, product_upgrade_request_validator_1.validateProductUpgradeRequestDto)(validRequest);
34
+ expect(errors.length).toBe(0);
35
+ });
36
+ it('should return errors for an invalid request', async () => {
37
+ const invalidRequest = {
38
+ clientData: {
39
+ email: 'not-an-email',
40
+ },
41
+ itemData: {},
42
+ };
43
+ const errors = await (0, product_upgrade_request_validator_1.validateProductUpgradeRequestDto)(invalidRequest);
44
+ expect(errors.length).toBeGreaterThan(0);
45
+ });
46
+ });
@@ -0,0 +1,8 @@
1
+ import { ValidationError } from 'class-validator';
2
+ /**
3
+ * Validates a product upgradeable request object.
4
+ *
5
+ * @param {Record<string, unknown>} plainObject - The plain object to validate.
6
+ * @returns {Promise<ValidationError[]>} - A promise that resolves with an array of validation errors.
7
+ */
8
+ export declare const validateProductUpgradeableRequestDto: (plainObject: Record<string, unknown>) => Promise<ValidationError[]>;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateProductUpgradeableRequestDto = void 0;
4
+ const class_validator_1 = require("class-validator");
5
+ const class_transformer_1 = require("class-transformer");
6
+ const product_upgradeable_request_dto_1 = require("../dtos/product/requests/product-upgradeable-request.dto");
7
+ /**
8
+ * Validates a product upgradeable request object.
9
+ *
10
+ * @param {Record<string, unknown>} plainObject - The plain object to validate.
11
+ * @returns {Promise<ValidationError[]>} - A promise that resolves with an array of validation errors.
12
+ */
13
+ const validateProductUpgradeableRequestDto = async (plainObject) => {
14
+ const request = (0, class_transformer_1.plainToInstance)(product_upgradeable_request_dto_1.ProductUpgradeableRequestDto, plainObject);
15
+ return await (0, class_validator_1.validate)(request);
16
+ };
17
+ exports.validateProductUpgradeableRequestDto = validateProductUpgradeableRequestDto;
@@ -0,0 +1 @@
1
+ import 'reflect-metadata';
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("reflect-metadata");
4
+ const product_validate_attributes_request_validator_1 = require("./product-validate-attributes-request-validator");
5
+ describe('validateProductValidateAttributesRequestDto', () => {
6
+ it('should return no errors for a valid request', async () => {
7
+ const validRequest = {
8
+ triggeredByKey: 'some-key',
9
+ attributeValues: {
10
+ attribute1: 'value1',
11
+ attribute2: 123,
12
+ },
13
+ };
14
+ const errors = await (0, product_validate_attributes_request_validator_1.validateProductValidateAttributesRequestDto)(validRequest);
15
+ expect(errors.length).toBe(0);
16
+ });
17
+ it('should return errors for an invalid request', async () => {
18
+ const invalidRequest = {
19
+ attributeValues: {
20
+ attribute1: 'value1',
21
+ attribute2: 123,
22
+ },
23
+ };
24
+ const errors = await (0, product_validate_attributes_request_validator_1.validateProductValidateAttributesRequestDto)(invalidRequest);
25
+ expect(errors.length).toBeGreaterThan(0);
26
+ });
27
+ });
@@ -0,0 +1 @@
1
+ import 'reflect-metadata';
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("reflect-metadata");
4
+ const receiver_email_validator_1 = require("./receiver-email-validator");
5
+ describe('EmailReceiverDto Validator', () => {
6
+ it('should return no errors for valid DTO', () => {
7
+ const validDto = {
8
+ to: 'test@example.com',
9
+ cc: ['cc1@example.com', 'cc2@example.com'],
10
+ bcc: ['bcc1@example.com', 'bcc2@example.com'],
11
+ };
12
+ const errors = (0, receiver_email_validator_1.validateEmailReceiverDto)(validDto);
13
+ expect(errors).toHaveLength(0);
14
+ });
15
+ it('should return error for invalid email format', () => {
16
+ const invalidDto = {
17
+ to: 'not-an-email',
18
+ };
19
+ const errors = (0, receiver_email_validator_1.validateEmailReceiverDto)(invalidDto);
20
+ expect(errors.length).toBeGreaterThan(0);
21
+ expect(errors.some((e) => e.property === 'to')).toBe(true);
22
+ });
23
+ it('should return error for duplicate emails in cc', () => {
24
+ const invalidDto = {
25
+ to: 'test@example.com',
26
+ cc: ['cc1@example.com', 'cc1@example.com'],
27
+ };
28
+ const errors = (0, receiver_email_validator_1.validateEmailReceiverDto)(invalidDto);
29
+ expect(errors.length).toBeGreaterThan(0);
30
+ expect(errors.some((e) => e.property === 'cc')).toBe(true);
31
+ });
32
+ });
@@ -0,0 +1 @@
1
+ import 'reflect-metadata';
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("reflect-metadata");
4
+ const receiver_push_validator_1 = require("./receiver-push-validator");
5
+ describe('PushReceiverDto Validator', () => {
6
+ it('should return no errors for valid DTO', () => {
7
+ const validDto = {
8
+ userId: 'test-user',
9
+ deviceTokens: ['token1', 'token2'],
10
+ };
11
+ const errors = (0, receiver_push_validator_1.validatePushReceiverDto)(validDto);
12
+ expect(errors).toHaveLength(0);
13
+ });
14
+ it('should return error for missing userId', () => {
15
+ const invalidDto = {
16
+ deviceTokens: ['token1', 'token2'],
17
+ };
18
+ const errors = (0, receiver_push_validator_1.validatePushReceiverDto)(invalidDto);
19
+ expect(errors.length).toBeGreaterThan(0);
20
+ expect(errors.some((e) => e.property === 'userId')).toBe(true);
21
+ });
22
+ it('should return error for empty deviceTokens array', () => {
23
+ const invalidDto = {
24
+ userId: 'test-user',
25
+ deviceTokens: [],
26
+ };
27
+ const errors = (0, receiver_push_validator_1.validatePushReceiverDto)(invalidDto);
28
+ expect(errors.length).toBeGreaterThan(0);
29
+ expect(errors.some((e) => e.property === 'deviceTokens')).toBe(true);
30
+ });
31
+ });
@@ -0,0 +1 @@
1
+ import 'reflect-metadata';
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("reflect-metadata");
4
+ const receiver_sms_validator_1 = require("./receiver-sms-validator");
5
+ describe('SmsReceiverDto Validator', () => {
6
+ it('should return no errors for valid DTO', () => {
7
+ const validDto = {
8
+ receiverPhones: ['+12015550123', '+442071234567'],
9
+ };
10
+ const errors = (0, receiver_sms_validator_1.validateSmsReceiverDto)(validDto);
11
+ expect(errors).toHaveLength(0);
12
+ });
13
+ it('should return error for invalid phone number', () => {
14
+ const invalidDto = {
15
+ receiverPhones: ['not-a-phone-number'],
16
+ };
17
+ const errors = (0, receiver_sms_validator_1.validateSmsReceiverDto)(invalidDto);
18
+ expect(errors.length).toBeGreaterThan(0);
19
+ expect(errors.some((e) => e.property === 'receiverPhones')).toBe(true);
20
+ });
21
+ it('should return error for duplicate phone numbers', () => {
22
+ const invalidDto = {
23
+ receiverPhones: ['+11234567890', '+11234567890'],
24
+ };
25
+ const errors = (0, receiver_sms_validator_1.validateSmsReceiverDto)(invalidDto);
26
+ expect(errors.length).toBeGreaterThan(0);
27
+ expect(errors.some((e) => e.property === 'receiverPhones')).toBe(true);
28
+ });
29
+ });
@@ -0,0 +1,2 @@
1
+ import 'reflect-metadata';
2
+ import 'reflect-metadata';
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("reflect-metadata");
4
+ require("reflect-metadata");
5
+ const sender_email_validator_1 = require("./sender-email-validator");
6
+ describe('EmailSenderDto Validator', () => {
7
+ it('should return no errors for valid DTO', () => {
8
+ const validDto = {
9
+ fullName: 'Test Sender',
10
+ subject: 'Test Subject',
11
+ message: 'Test Message',
12
+ };
13
+ const errors = (0, sender_email_validator_1.validateEmailSenderDto)(validDto);
14
+ expect(errors).toHaveLength(0);
15
+ });
16
+ it('should return error for missing fields', () => {
17
+ const invalidDto = {
18
+ // Missing all fields
19
+ };
20
+ const errors = (0, sender_email_validator_1.validateEmailSenderDto)(invalidDto);
21
+ expect(errors.length).toBeGreaterThan(0);
22
+ expect(errors.some((e) => e.property === 'fullName')).toBe(true);
23
+ expect(errors.some((e) => e.property === 'subject')).toBe(true);
24
+ expect(errors.some((e) => e.property === 'message')).toBe(true);
25
+ });
26
+ it('should return error for message length too long', () => {
27
+ const invalidDto = {
28
+ fullName: 'Test Sender',
29
+ subject: 'Test Subject',
30
+ message: 'a'.repeat(50001),
31
+ };
32
+ const errors = (0, sender_email_validator_1.validateEmailSenderDto)(invalidDto);
33
+ expect(errors.length).toBeGreaterThan(0);
34
+ expect(errors.some((e) => e.property === 'message')).toBe(true);
35
+ });
36
+ it('should return no errors for valid DTO with attachments', () => {
37
+ const validDto = {
38
+ fullName: 'Test Sender',
39
+ subject: 'Test Subject',
40
+ message: 'Test Message',
41
+ attachments: [
42
+ {
43
+ filename: 'test.txt',
44
+ content: 'dGVzdA==', // "test" in base64
45
+ },
46
+ ],
47
+ };
48
+ const errors = (0, sender_email_validator_1.validateEmailSenderDto)(validDto);
49
+ expect(errors).toHaveLength(0);
50
+ });
51
+ it('should return error for invalid attachments', () => {
52
+ const invalidDto = {
53
+ fullName: 'Test Sender',
54
+ subject: 'Test Subject',
55
+ message: 'Test Message',
56
+ attachments: 'not-an-array',
57
+ };
58
+ const errors = (0, sender_email_validator_1.validateEmailSenderDto)(invalidDto);
59
+ expect(errors.length).toBeGreaterThan(0);
60
+ expect(errors.some((e) => e.property === 'attachments')).toBe(true);
61
+ });
62
+ });
@@ -0,0 +1 @@
1
+ import 'reflect-metadata';
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("reflect-metadata");
4
+ const sender_push_validator_1 = require("./sender-push-validator");
5
+ describe('PushSenderDto Validator', () => {
6
+ it('should return no errors for valid DTO', () => {
7
+ const validDto = {
8
+ messageId: 'test-message-id',
9
+ userId: 'test-user-id',
10
+ title: 'Test Title',
11
+ message: 'Test Message',
12
+ };
13
+ const errors = (0, sender_push_validator_1.validatePushSenderDto)(validDto);
14
+ expect(errors).toHaveLength(0);
15
+ });
16
+ it('should return error for missing fields', () => {
17
+ const invalidDto = {
18
+ // Missing all fields
19
+ };
20
+ const errors = (0, sender_push_validator_1.validatePushSenderDto)(invalidDto);
21
+ expect(errors.length).toBeGreaterThan(0);
22
+ expect(errors.some((e) => e.property === 'messageId')).toBe(true);
23
+ expect(errors.some((e) => e.property === 'userId')).toBe(true);
24
+ expect(errors.some((e) => e.property === 'title')).toBe(true);
25
+ expect(errors.some((e) => e.property === 'message')).toBe(true);
26
+ });
27
+ it('should return error for message length too long', () => {
28
+ const invalidDto = {
29
+ messageId: 'test-message-id',
30
+ userId: 'test-user-id',
31
+ title: 'Test Title',
32
+ message: 'a'.repeat(1001),
33
+ };
34
+ const errors = (0, sender_push_validator_1.validatePushSenderDto)(invalidDto);
35
+ expect(errors.length).toBeGreaterThan(0);
36
+ expect(errors.some((e) => e.property === 'message')).toBe(true);
37
+ });
38
+ });
@@ -0,0 +1 @@
1
+ import 'reflect-metadata';
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("reflect-metadata");
4
+ const sender_sms_validator_1 = require("./sender-sms-validator");
5
+ describe('SmsSenderDto Validator', () => {
6
+ const validDto = {
7
+ senderPhone: '+12015550123',
8
+ message: 'Test Message',
9
+ };
10
+ it('should return no errors for valid DTO', () => {
11
+ expect((0, sender_sms_validator_1.validateSmsSenderDto)(validDto)).toHaveLength(0);
12
+ });
13
+ it.each([
14
+ [{ senderPhone: 'not-a-phone-number', message: 'Test Message' }, 'senderPhone'],
15
+ [{ senderPhone: '+11234567890' }, 'message'],
16
+ [{ message: 'Test Message' }, 'senderPhone'],
17
+ ])('should return error for invalid %s', (dto, expectedProp) => {
18
+ const errors = (0, sender_sms_validator_1.validateSmsSenderDto)(dto);
19
+ expect(errors.length).toBeGreaterThan(0);
20
+ expect(errors.some(e => e.property === expectedProp)).toBe(true);
21
+ });
22
+ });
@@ -0,0 +1 @@
1
+ import 'reflect-metadata';
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("reflect-metadata");
4
+ const settings_with_tabs_validator_1 = require("./settings-with-tabs.validator");
5
+ describe('SettingsWithTabsDto', () => {
6
+ it.each([
7
+ // valid
8
+ [{ tabs: [{ label: 'Tab 1', icon: 'https://icon.com', description: 'Test', url: 'https://valid.com' }], label: 'Test', icon: 'https://icon.com', description: 'Test' }, 0],
9
+ // invalid URL
10
+ [{ tabs: [{ label: 'Tab 1', icon: 'https://icon.com', description: 'Test', url: 'not-a-url' }], label: 'Test', icon: 'https://icon.com', description: 'Test' }, 1],
11
+ [{ tabs: [{ label: 'Tab 1', icon: 'https://icon.com', description: 'Test', url: 'ftp://wrongprotocol.com' }], label: 'Test', icon: 'https://icon.com', description: 'Test' }, 1],
12
+ // missing URL
13
+ [{ tabs: [{ label: 'Tab 1', icon: 'https://icon.com', description: 'Test' }], label: 'Missing URL', icon: 'https://icon.com', description: 'Test' }, 1],
14
+ [{ tabs: [{ label: 'Tab 1', icon: 'https://icon.com', description: 'Test' }], label: 'Empty URL', icon: 'https://icon.com', description: 'Test' }, 1],
15
+ [{ tabs: [{ label: 'Tab 1', icon: 'https://icon.com', description: 'Test' }], label: 'Null URL', icon: 'https://icon.com', description: 'Test' }, 1],
16
+ // missing Name
17
+ [{ tabs: [{ label: 'Tab 1', icon: 'https://icon.com', description: 'Test', url: 'https://valid.com' }], icon: 'https://icon.com', description: 'Test' }, 1],
18
+ [{ tabs: [{ label: 'Tab 1', icon: 'https://icon.com', description: 'Test', url: 'https://valid.com' }], label: '', icon: 'https://icon.com', description: 'Test' }, 1],
19
+ [{ tabs: [{ label: 'Tab 1', icon: 'https://icon.com', description: 'Test', url: 'https://valid.com' }], label: null, icon: 'https://icon.com', description: 'Test' }, 1],
20
+ // missing both link and icon
21
+ [{ tabs: [{ label: 'Tab 1', icon: 'https://icon.com', description: 'Test', url: 'https://valid.com' }], label: 'Missing URL', description: 'Test' }, 1],
22
+ // null both
23
+ [{ tabs: [{ label: 'Tab 1', icon: 'https://icon.com', description: 'Test', url: 'https://valid.com' }], label: null, icon: null, description: 'Test' }, 2],
24
+ // extra unexpected field should still pass base validation?
25
+ [{ tabs: [{ label: 'Tab 1', icon: 'https://icon.com', description: 'Test', url: 'https://valid.com' }], label: 'Test', icon: 'https://icon.com', description: 'Test', extra: 'field' }, 0],
26
+ ])('validates %# -> %s errors', (input, expectedCount) => {
27
+ expect((0, settings_with_tabs_validator_1.validateSettingsWithTabsDto)(input)).toHaveLength(expectedCount);
28
+ });
29
+ });
@@ -0,0 +1,2 @@
1
+ import { ValidationError } from 'class-validator';
2
+ export declare function validateSettingsWithTabsDto(data: object): ValidationError[];
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateSettingsWithTabsDto = validateSettingsWithTabsDto;
4
+ const class_validator_1 = require("class-validator");
5
+ const class_transformer_1 = require("class-transformer");
6
+ const settings_dto_1 = require("../dtos/settings.dto");
7
+ function validateSettingsWithTabsDto(data) {
8
+ const dto = (0, class_transformer_1.plainToInstance)(settings_dto_1.SettingsWithTabsDto, data);
9
+ const errors = (0, class_validator_1.validateSync)(dto);
10
+ return errors;
11
+ }
@@ -0,0 +1 @@
1
+ import 'reflect-metadata';
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("reflect-metadata");
4
+ const settings_with_url_validator_1 = require("./settings-with-url.validator");
5
+ describe('SettingsWithUrlDto', () => {
6
+ it.each([
7
+ // valid
8
+ [{ url: 'https://valid.com', label: 'Test', icon: 'https://icon.com', description: 'Test' }, 0],
9
+ // invalid URL
10
+ [{ url: 'not-a-url', label: 'Test', icon: 'https://icon.com', description: 'Test' }, 1],
11
+ [{ url: 'ftp://wrongprotocol.com', label: 'Test', icon: 'https://icon.com', description: 'Test' }, 1],
12
+ // missing URL
13
+ [{ label: 'Missing URL', icon: 'https://icon.com', description: 'Test' }, 1],
14
+ [{ url: '', label: 'Empty URL', icon: 'https://icon.com', description: 'Test' }, 1],
15
+ [{ url: null, label: 'Null URL', icon: 'https://icon.com', description: 'Test' }, 1],
16
+ // missing Name
17
+ [{ url: 'https://valid.com', icon: 'https://icon.com', description: 'Test' }, 1],
18
+ [{ url: 'https://valid.com', label: '', icon: 'https://icon.com', description: 'Test' }, 1],
19
+ [{ url: 'https://valid.com', label: null, icon: 'https://icon.com', description: 'Test' }, 1],
20
+ // missing both link and icon
21
+ [{ label: 'Missing URL', description: 'Test' }, 2],
22
+ // null both
23
+ [{ url: null, label: null, icon: 'https://icon.com', description: 'Test' }, 2],
24
+ // extra unexpected field should still pass base validation?
25
+ [{ url: 'https://valid.com', label: 'Test', icon: 'https://icon.com', description: 'Test', extra: 'field' }, 0],
26
+ ])('validates %# -> %s errors', (input, expectedCount) => {
27
+ expect((0, settings_with_url_validator_1.validateSettingsWithUrlDto)(input)).toHaveLength(expectedCount);
28
+ });
29
+ });
@@ -0,0 +1,2 @@
1
+ import { ValidationError } from 'class-validator';
2
+ export declare function validateSettingsWithUrlDto(data: object): ValidationError[];
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateSettingsWithUrlDto = validateSettingsWithUrlDto;
4
+ const class_validator_1 = require("class-validator");
5
+ const class_transformer_1 = require("class-transformer");
6
+ const settings_dto_1 = require("../dtos/settings.dto");
7
+ function validateSettingsWithUrlDto(data) {
8
+ const dto = (0, class_transformer_1.plainToInstance)(settings_dto_1.SettingsWithUrlDto, data);
9
+ const errors = (0, class_validator_1.validateSync)(dto);
10
+ return errors;
11
+ }
@@ -0,0 +1 @@
1
+ import 'reflect-metadata';
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ require("reflect-metadata");
4
+ const unit_validator_1 = require("../validators/unit.validator");
5
+ describe('UnitDto Validator', () => {
6
+ const validDto = {
7
+ id: 'ram',
8
+ unitDescription: 'MB',
9
+ intervalDescription: 'month',
10
+ };
11
+ it('should return no errors for valid DTO', () => {
12
+ expect((0, unit_validator_1.validateUnitDto)(validDto)).toHaveLength(0);
13
+ });
14
+ it.each([
15
+ [{ ...validDto, id: 6979466666 }, 'id'],
16
+ [{ ...validDto, unitDescription: undefined }, 'unitDescription'],
17
+ [{ ...validDto, intervalDescription: undefined }, 'intervalDescription'],
18
+ [{ unitDescription: 'MB', intervalDescription: 'month' }, 'id'],
19
+ [{ id: 6979466666, unitDescription: 'MB', intervalDescription: 'month' }, 'id'],
20
+ [{ id: 'ram', unitDescription: 123, intervalDescription: 'month' }, 'unitDescription'],
21
+ [{ id: 'ram', unitDescription: 'MB', intervalDescription: 123 }, 'intervalDescription'],
22
+ ])('should return error for invalid %s', (dto, expectedErrorProp) => {
23
+ const errors = (0, unit_validator_1.validateUnitDto)(dto);
24
+ expect(errors.length).toBeGreaterThan(0);
25
+ expect(errors.some(e => e.property === expectedErrorProp)).toBe(true);
26
+ });
27
+ });
@@ -0,0 +1,2 @@
1
+ import { ValidationError } from 'class-validator';
2
+ export declare function validateUnitDto(data: object): ValidationError[];
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateUnitDto = validateUnitDto;
4
+ const class_validator_1 = require("class-validator");
5
+ const class_transformer_1 = require("class-transformer");
6
+ const unit_dto_1 = require("../dtos/unit.dto");
7
+ function validateUnitDto(data) {
8
+ const dto = (0, class_transformer_1.plainToInstance)(unit_dto_1.UnitDto, data);
9
+ const errors = (0, class_validator_1.validateSync)(dto);
10
+ return errors;
11
+ }
package/package.json CHANGED
@@ -1,10 +1,12 @@
1
1
  {
2
2
  "name": "@hosterai/types",
3
- "version": "0.0.17",
3
+ "version": "0.0.19",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {
7
7
  "build": "tsc",
8
+ "build:schemas": "ts-node scripts/generate-schemas.ts",
9
+ "prepack": "npm run build:schemas && npm run build",
8
10
  "test": "jest",
9
11
  "coverage": "jest --coverage",
10
12
  "lint": "eslint . --ext .ts --fix",
@@ -31,6 +33,7 @@
31
33
  "fs-extra": "^11.3.0",
32
34
  "jest": "^30.0.3",
33
35
  "prettier": "^3.6.1",
36
+ "class-validator-jsonschema": "^5.0.0",
34
37
  "ts-jest": "^29.4.0",
35
38
  "ts-node": "^10.9.2",
36
39
  "typescript": "^5.8.3"
@@ -1,5 +0,0 @@
1
- import { MessageTypeEnum } from "../../enums/message-type.enum";
2
- import { InfoDto } from "./info.dto";
3
- export declare class InfoNotificationDto extends InfoDto {
4
- type: MessageTypeEnum;
5
- }
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InfoNotificationDto = void 0;
4
- const info_dto_1 = require("./info.dto");
5
- class InfoNotificationDto extends info_dto_1.InfoDto {
6
- }
7
- exports.InfoNotificationDto = InfoNotificationDto;