@hosterai/types 0.0.30 → 0.0.32
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.
- package/dist/decorators/is-e164-validator.spec.d.ts +1 -0
- package/dist/decorators/is-e164-validator.spec.js +64 -0
- package/dist/decorators/is-e164.validator.d.ts +2 -0
- package/dist/decorators/is-e164.validator.js +30 -0
- package/dist/dtos/base-field.dto.d.ts +45 -0
- package/dist/dtos/base-field.dto.js +133 -0
- package/dist/dtos/fields/any-field.dto.d.ts +38 -0
- package/dist/dtos/fields/any-field.dto.js +36 -0
- package/dist/dtos/fields/boolean-field.dto.d.ts +14 -0
- package/dist/dtos/fields/boolean-field.dto.js +48 -0
- package/dist/dtos/fields/countries-field.dto.d.ts +14 -0
- package/dist/dtos/fields/countries-field.dto.js +51 -0
- package/dist/dtos/fields/currency-field.dto.d.ts +14 -0
- package/dist/dtos/fields/currency-field.dto.js +50 -0
- package/dist/dtos/fields/date-field.dto.d.ts +14 -0
- package/dist/dtos/fields/date-field.dto.js +49 -0
- package/dist/dtos/fields/email-field.dto.d.ts +14 -0
- package/dist/dtos/fields/email-field.dto.js +49 -0
- package/dist/dtos/fields/multi-select-field.dto.d.ts +15 -0
- package/dist/dtos/fields/multi-select-field.dto.js +53 -0
- package/dist/dtos/fields/number-field.dto.d.ts +26 -0
- package/dist/dtos/fields/number-field.dto.js +82 -0
- package/dist/dtos/fields/password-field.dto.d.ts +21 -0
- package/dist/dtos/fields/password-field.dto.js +64 -0
- package/dist/dtos/fields/phone-field.dto.d.ts +14 -0
- package/dist/dtos/fields/phone-field.dto.js +50 -0
- package/dist/dtos/fields/select-field.dto.d.ts +15 -0
- package/dist/dtos/fields/select-field.dto.js +51 -0
- package/dist/dtos/fields/text-field.dto.d.ts +31 -0
- package/dist/dtos/fields/text-field.dto.js +102 -0
- package/dist/dtos/fields/textarea-field.dto.d.ts +31 -0
- package/dist/dtos/fields/textarea-field.dto.js +102 -0
- package/dist/dtos/fields/url-field.dto.d.ts +14 -0
- package/dist/dtos/fields/url-field.dto.js +49 -0
- package/dist/dtos/info/info-notification.dto.d.ts +5 -0
- package/dist/dtos/info/info-notification.dto.js +7 -0
- package/dist/dtos/info/info.dto.d.ts +196 -0
- package/dist/dtos/info/info.dto.js +278 -0
- package/dist/dtos/info.dto.d.ts +7 -0
- package/dist/dtos/info.dto.js +11 -0
- package/dist/dtos/notification/notification-request.dto.d.ts +20 -0
- package/dist/dtos/notification/notification-request.dto.js +31 -0
- package/dist/dtos/receiver/receiver-email.dto.d.ts +20 -0
- package/dist/dtos/receiver/receiver-email.dto.js +39 -0
- package/dist/dtos/receiver/receiver-push.dto.d.ts +15 -0
- package/dist/dtos/receiver/receiver-push.dto.js +31 -0
- package/dist/dtos/receiver/receiver-sms.dto.d.ts +11 -0
- package/dist/dtos/receiver/receiver-sms.dto.js +26 -0
- package/dist/dtos/request.dto.d.ts +20 -0
- package/dist/dtos/request.dto.js +31 -0
- package/dist/dtos/sender/sender-email.dto.d.ts +25 -0
- package/dist/dtos/sender/sender-email.dto.js +46 -0
- package/dist/dtos/sender/sender-push.dto.d.ts +31 -0
- package/dist/dtos/sender/sender-push.dto.js +50 -0
- package/dist/dtos/sender/sender-sms.dto.d.ts +15 -0
- package/dist/dtos/sender/sender-sms.dto.js +30 -0
- package/dist/enums/message-type.enum.d.ts +5 -0
- package/dist/enums/message-type.enum.js +9 -0
- package/dist/enums/roles.enum.d.ts +1 -0
- package/dist/enums/roles.enum.js +1 -0
- package/dist/openapi/schemas/components.schemas.d.ts +27 -6
- package/dist/openapi/schemas/components.schemas.js +27 -0
- package/dist/validators/any-field-validator.d.ts +10 -0
- package/dist/validators/any-field-validator.js +28 -0
- package/dist/validators/any-field-validator.spec.d.ts +1 -0
- package/dist/validators/any-field-validator.spec.js +37 -0
- package/dist/validators/fields/boolean-field-validator.d.ts +8 -0
- package/dist/validators/fields/boolean-field-validator.js +15 -0
- package/dist/validators/fields/boolean-field-validator.spec.d.ts +1 -0
- package/dist/validators/fields/boolean-field-validator.spec.js +43 -0
- package/dist/validators/fields/countries-field-validator.d.ts +8 -0
- package/dist/validators/fields/countries-field-validator.js +15 -0
- package/dist/validators/fields/countries-field-validator.spec.d.ts +1 -0
- package/dist/validators/fields/countries-field-validator.spec.js +44 -0
- package/dist/validators/fields/currency-field-validator.d.ts +8 -0
- package/dist/validators/fields/currency-field-validator.js +15 -0
- package/dist/validators/fields/currency-field-validator.spec.d.ts +1 -0
- package/dist/validators/fields/currency-field-validator.spec.js +41 -0
- package/dist/validators/fields/date-field-validator.d.ts +8 -0
- package/dist/validators/fields/date-field-validator.js +15 -0
- package/dist/validators/fields/date-field-validator.spec.d.ts +1 -0
- package/dist/validators/fields/date-field-validator.spec.js +43 -0
- package/dist/validators/fields/email-field-validator.d.ts +8 -0
- package/dist/validators/fields/email-field-validator.js +15 -0
- package/dist/validators/fields/email-field-validator.spec.d.ts +1 -0
- package/dist/validators/fields/email-field-validator.spec.js +43 -0
- package/dist/validators/fields/multi-select-field-validator.d.ts +8 -0
- package/dist/validators/fields/multi-select-field-validator.js +15 -0
- package/dist/validators/fields/multi-select-field-validator.spec.d.ts +1 -0
- package/dist/validators/fields/multi-select-field-validator.spec.js +52 -0
- package/dist/validators/fields/number-field-validator.d.ts +8 -0
- package/dist/validators/fields/number-field-validator.js +15 -0
- package/dist/validators/fields/number-field-validator.spec.d.ts +1 -0
- package/dist/validators/fields/number-field-validator.spec.js +59 -0
- package/dist/validators/fields/password-field-validator.d.ts +8 -0
- package/dist/validators/fields/password-field-validator.js +15 -0
- package/dist/validators/fields/password-field-validator.spec.d.ts +1 -0
- package/dist/validators/fields/password-field-validator.spec.js +44 -0
- package/dist/validators/fields/phone-field-validator.d.ts +8 -0
- package/dist/validators/fields/phone-field-validator.js +15 -0
- package/dist/validators/fields/phone-field-validator.spec.d.ts +1 -0
- package/dist/validators/fields/phone-field-validator.spec.js +41 -0
- package/dist/validators/fields/select-field-validator.d.ts +8 -0
- package/dist/validators/fields/select-field-validator.js +15 -0
- package/dist/validators/fields/select-field-validator.spec.d.ts +1 -0
- package/dist/validators/fields/select-field-validator.spec.js +46 -0
- package/dist/validators/fields/text-field-validator.d.ts +8 -0
- package/dist/validators/fields/text-field-validator.js +15 -0
- package/dist/validators/fields/text-field-validator.spec.d.ts +1 -0
- package/dist/validators/fields/text-field-validator.spec.js +60 -0
- package/dist/validators/fields/textarea-field-validator.d.ts +8 -0
- package/dist/validators/fields/textarea-field-validator.js +15 -0
- package/dist/validators/fields/textarea-field-validator.spec.d.ts +1 -0
- package/dist/validators/fields/textarea-field-validator.spec.js +52 -0
- package/dist/validators/fields/url-field-validator.d.ts +8 -0
- package/dist/validators/fields/url-field-validator.js +15 -0
- package/dist/validators/fields/url-field-validator.spec.d.ts +1 -0
- package/dist/validators/fields/url-field-validator.spec.js +43 -0
- package/package.json +1 -1
- package/dist/dtos/product/requests/product-downgradeable-request.dto.d.ts +0 -18
- package/dist/dtos/product/requests/product-downgradeable-request.dto.js +0 -37
- package/dist/dtos/product/requests/product-upgradeable-request.dto.d.ts +0 -18
- package/dist/dtos/product/requests/product-upgradeable-request.dto.js +0 -37
- package/dist/dtos/product/responses/product-downgradeable-response.dto.d.ts +0 -22
- package/dist/dtos/product/responses/product-downgradeable-response.dto.js +0 -11
- package/dist/dtos/product/responses/product-upgradeable-response.dto.d.ts +0 -22
- package/dist/dtos/product/responses/product-upgradeable-response.dto.js +0 -11
- package/dist/validators/product-downgradeable-request-validator.d.ts +0 -8
- package/dist/validators/product-downgradeable-request-validator.js +0 -17
- package/dist/validators/product-upgradeable-request-validator.d.ts +0 -8
- package/dist/validators/product-upgradeable-request-validator.js +0 -17
|
@@ -1090,6 +1090,13 @@ exports.ComponentsSchemas = {
|
|
|
1090
1090
|
"description": "Integration display title.",
|
|
1091
1091
|
"example": "Example Product"
|
|
1092
1092
|
},
|
|
1093
|
+
"uniqueName": {
|
|
1094
|
+
"minLength": 1,
|
|
1095
|
+
"type": "string",
|
|
1096
|
+
"title": "Unique Name",
|
|
1097
|
+
"description": "Unique name of the integration.",
|
|
1098
|
+
"example": "example-product"
|
|
1099
|
+
},
|
|
1093
1100
|
"logo": {
|
|
1094
1101
|
"format": "uri",
|
|
1095
1102
|
"type": "string",
|
|
@@ -1524,6 +1531,7 @@ exports.ComponentsSchemas = {
|
|
|
1524
1531
|
"IPS_WRITE",
|
|
1525
1532
|
"ITEMS_READ",
|
|
1526
1533
|
"ITEMS_WRITE",
|
|
1534
|
+
"ITEM_REFUND",
|
|
1527
1535
|
"ORDERS_READ",
|
|
1528
1536
|
"ORDERS_WRITE",
|
|
1529
1537
|
"TRANSACTIONS_READ",
|
|
@@ -1583,6 +1591,7 @@ exports.ComponentsSchemas = {
|
|
|
1583
1591
|
"type": "object",
|
|
1584
1592
|
"required": [
|
|
1585
1593
|
"title",
|
|
1594
|
+
"uniqueName",
|
|
1586
1595
|
"supportedLanguages"
|
|
1587
1596
|
]
|
|
1588
1597
|
},
|
|
@@ -1652,6 +1661,13 @@ exports.ComponentsSchemas = {
|
|
|
1652
1661
|
"description": "Integration display title.",
|
|
1653
1662
|
"example": "Example Product"
|
|
1654
1663
|
},
|
|
1664
|
+
"uniqueName": {
|
|
1665
|
+
"minLength": 1,
|
|
1666
|
+
"type": "string",
|
|
1667
|
+
"title": "Unique Name",
|
|
1668
|
+
"description": "Unique name of the integration.",
|
|
1669
|
+
"example": "example-product"
|
|
1670
|
+
},
|
|
1655
1671
|
"logo": {
|
|
1656
1672
|
"format": "uri",
|
|
1657
1673
|
"type": "string",
|
|
@@ -2086,6 +2102,7 @@ exports.ComponentsSchemas = {
|
|
|
2086
2102
|
"IPS_WRITE",
|
|
2087
2103
|
"ITEMS_READ",
|
|
2088
2104
|
"ITEMS_WRITE",
|
|
2105
|
+
"ITEM_REFUND",
|
|
2089
2106
|
"ORDERS_READ",
|
|
2090
2107
|
"ORDERS_WRITE",
|
|
2091
2108
|
"TRANSACTIONS_READ",
|
|
@@ -2146,6 +2163,7 @@ exports.ComponentsSchemas = {
|
|
|
2146
2163
|
"required": [
|
|
2147
2164
|
"type",
|
|
2148
2165
|
"title",
|
|
2166
|
+
"uniqueName",
|
|
2149
2167
|
"supportedLanguages"
|
|
2150
2168
|
]
|
|
2151
2169
|
},
|
|
@@ -2361,6 +2379,13 @@ exports.ComponentsSchemas = {
|
|
|
2361
2379
|
"description": "Integration display title.",
|
|
2362
2380
|
"example": "Example Product"
|
|
2363
2381
|
},
|
|
2382
|
+
"uniqueName": {
|
|
2383
|
+
"minLength": 1,
|
|
2384
|
+
"type": "string",
|
|
2385
|
+
"title": "Unique Name",
|
|
2386
|
+
"description": "Unique name of the integration.",
|
|
2387
|
+
"example": "example-product"
|
|
2388
|
+
},
|
|
2364
2389
|
"logo": {
|
|
2365
2390
|
"format": "uri",
|
|
2366
2391
|
"type": "string",
|
|
@@ -2795,6 +2820,7 @@ exports.ComponentsSchemas = {
|
|
|
2795
2820
|
"IPS_WRITE",
|
|
2796
2821
|
"ITEMS_READ",
|
|
2797
2822
|
"ITEMS_WRITE",
|
|
2823
|
+
"ITEM_REFUND",
|
|
2798
2824
|
"ORDERS_READ",
|
|
2799
2825
|
"ORDERS_WRITE",
|
|
2800
2826
|
"TRANSACTIONS_READ",
|
|
@@ -2855,6 +2881,7 @@ exports.ComponentsSchemas = {
|
|
|
2855
2881
|
"required": [
|
|
2856
2882
|
"supportedActions",
|
|
2857
2883
|
"title",
|
|
2884
|
+
"uniqueName",
|
|
2858
2885
|
"supportedLanguages"
|
|
2859
2886
|
]
|
|
2860
2887
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ValidationError } from 'class-validator';
|
|
2
|
+
/**
|
|
3
|
+
* Validates any field DTO by reading the string-literal `type` discriminator and
|
|
4
|
+
* routing to the matching concrete DTO's validation.
|
|
5
|
+
*
|
|
6
|
+
* @param data Object with a string `type` discriminator.
|
|
7
|
+
* @returns ValidationError[] from the concrete DTO, or a synthetic error if
|
|
8
|
+
* `type` is missing or not a recognized literal.
|
|
9
|
+
*/
|
|
10
|
+
export declare function validateAnyFieldDto(data: object): ValidationError[];
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateAnyFieldDto = validateAnyFieldDto;
|
|
4
|
+
const class_validator_1 = require("class-validator");
|
|
5
|
+
const class_transformer_1 = require("class-transformer");
|
|
6
|
+
const any_field_dto_1 = require("../dtos/fields/any-field.dto");
|
|
7
|
+
/**
|
|
8
|
+
* Validates any field DTO by reading the string-literal `type` discriminator and
|
|
9
|
+
* routing to the matching concrete DTO's validation.
|
|
10
|
+
*
|
|
11
|
+
* @param data Object with a string `type` discriminator.
|
|
12
|
+
* @returns ValidationError[] from the concrete DTO, or a synthetic error if
|
|
13
|
+
* `type` is missing or not a recognized literal.
|
|
14
|
+
*/
|
|
15
|
+
function validateAnyFieldDto(data) {
|
|
16
|
+
const type = data === null || data === void 0 ? void 0 : data.type;
|
|
17
|
+
if (typeof type !== 'string' || !(type in any_field_dto_1.FIELD_DTO_CLASSES)) {
|
|
18
|
+
const err = new class_validator_1.ValidationError();
|
|
19
|
+
err.property = 'type';
|
|
20
|
+
err.value = type;
|
|
21
|
+
err.constraints = {
|
|
22
|
+
isFieldType: `type must be one of: ${Object.keys(any_field_dto_1.FIELD_DTO_CLASSES).join(', ')}`,
|
|
23
|
+
};
|
|
24
|
+
return [err];
|
|
25
|
+
}
|
|
26
|
+
const Cls = any_field_dto_1.FIELD_DTO_CLASSES[type];
|
|
27
|
+
return (0, class_validator_1.validateSync)((0, class_transformer_1.plainToInstance)(Cls, data));
|
|
28
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
require("reflect-metadata");
|
|
4
|
+
const any_field_validator_1 = require("./any-field-validator");
|
|
5
|
+
const language_enum_1 = require("../enums/language.enum");
|
|
6
|
+
const minimalBase = (type) => ({
|
|
7
|
+
id: 'x',
|
|
8
|
+
label: [{ language: language_enum_1.LanguageEnum.ENGLISH, text: 'X' }],
|
|
9
|
+
type,
|
|
10
|
+
required: true,
|
|
11
|
+
disabled: false,
|
|
12
|
+
});
|
|
13
|
+
describe('AnyField dispatcher', () => {
|
|
14
|
+
it('routes a TEXT payload to TextFieldDto validation', () => {
|
|
15
|
+
expect((0, any_field_validator_1.validateAnyFieldDto)(minimalBase('TEXT'))).toHaveLength(0);
|
|
16
|
+
});
|
|
17
|
+
it('routes a NUMBER payload to NumberFieldDto validation', () => {
|
|
18
|
+
expect((0, any_field_validator_1.validateAnyFieldDto)(minimalBase('NUMBER'))).toHaveLength(0);
|
|
19
|
+
});
|
|
20
|
+
it('returns a synthetic type error when discriminator is missing', () => {
|
|
21
|
+
const errors = (0, any_field_validator_1.validateAnyFieldDto)({ id: 'x' });
|
|
22
|
+
expect(errors.some((e) => e.property === 'type')).toBe(true);
|
|
23
|
+
});
|
|
24
|
+
it('returns a synthetic type error when discriminator is unknown', () => {
|
|
25
|
+
const errors = (0, any_field_validator_1.validateAnyFieldDto)({
|
|
26
|
+
...minimalBase('NOT_REAL'),
|
|
27
|
+
});
|
|
28
|
+
expect(errors.some((e) => e.property === 'type')).toBe(true);
|
|
29
|
+
});
|
|
30
|
+
it('propagates type-specific validation errors from the concrete DTO', () => {
|
|
31
|
+
const errors = (0, any_field_validator_1.validateAnyFieldDto)({
|
|
32
|
+
...minimalBase('PHONE'),
|
|
33
|
+
value: 'not-a-phone',
|
|
34
|
+
});
|
|
35
|
+
expect(errors.some((e) => e.property === 'value')).toBe(true);
|
|
36
|
+
});
|
|
37
|
+
});
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ValidationError } from 'class-validator';
|
|
2
|
+
/**
|
|
3
|
+
* Validates a BooleanFieldDto object using class-validator decorators.
|
|
4
|
+
*
|
|
5
|
+
* @param data The object to validate as a BooleanFieldDto.
|
|
6
|
+
* @returns An array of validation errors, empty if validation succeeds.
|
|
7
|
+
*/
|
|
8
|
+
export declare function validateBooleanFieldDto(data: object): ValidationError[];
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateBooleanFieldDto = validateBooleanFieldDto;
|
|
4
|
+
const class_validator_1 = require("class-validator");
|
|
5
|
+
const class_transformer_1 = require("class-transformer");
|
|
6
|
+
const boolean_field_dto_1 = require("../../dtos/fields/boolean-field.dto");
|
|
7
|
+
/**
|
|
8
|
+
* Validates a BooleanFieldDto object using class-validator decorators.
|
|
9
|
+
*
|
|
10
|
+
* @param data The object to validate as a BooleanFieldDto.
|
|
11
|
+
* @returns An array of validation errors, empty if validation succeeds.
|
|
12
|
+
*/
|
|
13
|
+
function validateBooleanFieldDto(data) {
|
|
14
|
+
return (0, class_validator_1.validateSync)((0, class_transformer_1.plainToInstance)(boolean_field_dto_1.BooleanFieldDto, 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 boolean_field_validator_1 = require("./boolean-field-validator");
|
|
5
|
+
const language_enum_1 = require("../../enums/language.enum");
|
|
6
|
+
const baseValidDto = {
|
|
7
|
+
id: 'bool-1',
|
|
8
|
+
label: [{ language: language_enum_1.LanguageEnum.ENGLISH, text: 'Accept Terms' }],
|
|
9
|
+
type: 'BOOLEAN',
|
|
10
|
+
required: true,
|
|
11
|
+
disabled: false,
|
|
12
|
+
};
|
|
13
|
+
describe('BooleanFieldDto Validator', () => {
|
|
14
|
+
describe('Valid cases', () => {
|
|
15
|
+
it('should return no errors for a valid DTO', () => {
|
|
16
|
+
expect((0, boolean_field_validator_1.validateBooleanFieldDto)(baseValidDto)).toHaveLength(0);
|
|
17
|
+
});
|
|
18
|
+
it('should return no errors with a boolean value', () => {
|
|
19
|
+
expect((0, boolean_field_validator_1.validateBooleanFieldDto)({ ...baseValidDto, value: true })).toHaveLength(0);
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
describe('Missing required fields', () => {
|
|
23
|
+
it('should return errors for all missing required fields', () => {
|
|
24
|
+
const errors = (0, boolean_field_validator_1.validateBooleanFieldDto)({});
|
|
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('should return error for wrong type literal', () => {
|
|
32
|
+
const errors = (0, boolean_field_validator_1.validateBooleanFieldDto)({ ...baseValidDto, type: 'TEXT' });
|
|
33
|
+
expect(errors.some((e) => e.property === 'type')).toBe(true);
|
|
34
|
+
});
|
|
35
|
+
it('should return error for non-boolean value', () => {
|
|
36
|
+
const errors = (0, boolean_field_validator_1.validateBooleanFieldDto)({
|
|
37
|
+
...baseValidDto,
|
|
38
|
+
value: 'true',
|
|
39
|
+
});
|
|
40
|
+
expect(errors.some((e) => e.property === 'value')).toBe(true);
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
});
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ValidationError } from 'class-validator';
|
|
2
|
+
/**
|
|
3
|
+
* Validates a CountriesFieldDto object using class-validator decorators.
|
|
4
|
+
*
|
|
5
|
+
* @param data The object to validate as a CountriesFieldDto.
|
|
6
|
+
* @returns An array of validation errors, empty if validation succeeds.
|
|
7
|
+
*/
|
|
8
|
+
export declare function validateCountriesFieldDto(data: object): ValidationError[];
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateCountriesFieldDto = validateCountriesFieldDto;
|
|
4
|
+
const class_validator_1 = require("class-validator");
|
|
5
|
+
const class_transformer_1 = require("class-transformer");
|
|
6
|
+
const countries_field_dto_1 = require("../../dtos/fields/countries-field.dto");
|
|
7
|
+
/**
|
|
8
|
+
* Validates a CountriesFieldDto object using class-validator decorators.
|
|
9
|
+
*
|
|
10
|
+
* @param data The object to validate as a CountriesFieldDto.
|
|
11
|
+
* @returns An array of validation errors, empty if validation succeeds.
|
|
12
|
+
*/
|
|
13
|
+
function validateCountriesFieldDto(data) {
|
|
14
|
+
return (0, class_validator_1.validateSync)((0, class_transformer_1.plainToInstance)(countries_field_dto_1.CountriesFieldDto, 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 countries_field_validator_1 = require("./countries-field-validator");
|
|
5
|
+
const language_enum_1 = require("../../enums/language.enum");
|
|
6
|
+
const country_enum_1 = require("../../enums/country.enum");
|
|
7
|
+
const baseValidDto = {
|
|
8
|
+
id: 'countries-1',
|
|
9
|
+
label: [{ language: language_enum_1.LanguageEnum.ENGLISH, text: 'Countries' }],
|
|
10
|
+
type: 'COUNTRIES',
|
|
11
|
+
required: true,
|
|
12
|
+
disabled: false,
|
|
13
|
+
};
|
|
14
|
+
describe('CountriesFieldDto Validator', () => {
|
|
15
|
+
describe('Valid cases', () => {
|
|
16
|
+
it('should return no errors for a valid minimal DTO', () => {
|
|
17
|
+
expect((0, countries_field_validator_1.validateCountriesFieldDto)(baseValidDto)).toHaveLength(0);
|
|
18
|
+
});
|
|
19
|
+
it('should return no errors with a valid value array', () => {
|
|
20
|
+
expect((0, countries_field_validator_1.validateCountriesFieldDto)({
|
|
21
|
+
...baseValidDto,
|
|
22
|
+
value: [country_enum_1.CountryEnum.GREECE, country_enum_1.CountryEnum.UNITED_STATES],
|
|
23
|
+
})).toHaveLength(0);
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
describe('Missing required fields', () => {
|
|
27
|
+
it('should return errors for all missing required fields', () => {
|
|
28
|
+
const errors = (0, countries_field_validator_1.validateCountriesFieldDto)({});
|
|
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: 'GR' }, 'value'],
|
|
38
|
+
[{ ...baseValidDto, value: ['NOT_A_COUNTRY'] }, 'value'],
|
|
39
|
+
])('should return error for invalid %#', (dto, expectedProp) => {
|
|
40
|
+
const errors = (0, countries_field_validator_1.validateCountriesFieldDto)(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 CurrencyFieldDto object using class-validator decorators.
|
|
4
|
+
*
|
|
5
|
+
* @param data The object to validate as a CurrencyFieldDto.
|
|
6
|
+
* @returns An array of validation errors, empty if validation succeeds.
|
|
7
|
+
*/
|
|
8
|
+
export declare function validateCurrencyFieldDto(data: object): ValidationError[];
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateCurrencyFieldDto = validateCurrencyFieldDto;
|
|
4
|
+
const class_validator_1 = require("class-validator");
|
|
5
|
+
const class_transformer_1 = require("class-transformer");
|
|
6
|
+
const currency_field_dto_1 = require("../../dtos/fields/currency-field.dto");
|
|
7
|
+
/**
|
|
8
|
+
* Validates a CurrencyFieldDto object using class-validator decorators.
|
|
9
|
+
*
|
|
10
|
+
* @param data The object to validate as a CurrencyFieldDto.
|
|
11
|
+
* @returns An array of validation errors, empty if validation succeeds.
|
|
12
|
+
*/
|
|
13
|
+
function validateCurrencyFieldDto(data) {
|
|
14
|
+
return (0, class_validator_1.validateSync)((0, class_transformer_1.plainToInstance)(currency_field_dto_1.CurrencyFieldDto, 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 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';
|