structure-verifier 0.0.1

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 (56) hide show
  1. package/README.md +186 -0
  2. package/dist/index.d.ts +14 -0
  3. package/dist/index.js +18 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/src/config/validatorConfig.d.ts +3 -0
  6. package/dist/src/config/validatorConfig.js +8 -0
  7. package/dist/src/config/validatorConfig.js.map +1 -0
  8. package/dist/src/error/v_error.d.ts +11 -0
  9. package/dist/src/error/v_error.js +28 -0
  10. package/dist/src/error/v_error.js.map +1 -0
  11. package/dist/src/interfaces/types.d.ts +28 -0
  12. package/dist/src/interfaces/types.js +3 -0
  13. package/dist/src/interfaces/types.js.map +1 -0
  14. package/dist/src/languages/message.d.ts +10 -0
  15. package/dist/src/languages/message.js +30 -0
  16. package/dist/src/languages/message.js.map +1 -0
  17. package/dist/src/validators/any/v_any.d.ts +2 -0
  18. package/dist/src/validators/any/v_any.js +7 -0
  19. package/dist/src/validators/any/v_any.js.map +1 -0
  20. package/dist/src/validators/array/v_array.d.ts +4 -0
  21. package/dist/src/validators/array/v_array.js +10 -0
  22. package/dist/src/validators/array/v_array.js.map +1 -0
  23. package/dist/src/validators/boolean/v_boolean.d.ts +15 -0
  24. package/dist/src/validators/boolean/v_boolean.js +48 -0
  25. package/dist/src/validators/boolean/v_boolean.js.map +1 -0
  26. package/dist/src/validators/boolean/v_boolean.test.d.ts +1 -0
  27. package/dist/src/validators/boolean/v_boolean.test.js +61 -0
  28. package/dist/src/validators/boolean/v_boolean.test.js.map +1 -0
  29. package/dist/src/validators/date/v_date.d.ts +0 -0
  30. package/dist/src/validators/date/v_date.js +2 -0
  31. package/dist/src/validators/date/v_date.js.map +1 -0
  32. package/dist/src/validators/number/v_number.d.ts +33 -0
  33. package/dist/src/validators/number/v_number.js +122 -0
  34. package/dist/src/validators/number/v_number.js.map +1 -0
  35. package/dist/src/validators/number/v_number.test.d.ts +1 -0
  36. package/dist/src/validators/number/v_number.test.js +91 -0
  37. package/dist/src/validators/number/v_number.test.js.map +1 -0
  38. package/dist/src/validators/object/v_object.d.ts +28 -0
  39. package/dist/src/validators/object/v_object.js +130 -0
  40. package/dist/src/validators/object/v_object.js.map +1 -0
  41. package/dist/src/validators/object/v_object.test.d.ts +1 -0
  42. package/dist/src/validators/object/v_object.test.js +73 -0
  43. package/dist/src/validators/object/v_object.test.js.map +1 -0
  44. package/dist/src/validators/string/v_string.d.ts +35 -0
  45. package/dist/src/validators/string/v_string.js +141 -0
  46. package/dist/src/validators/string/v_string.js.map +1 -0
  47. package/dist/src/validators/string/v_string.test.d.ts +1 -0
  48. package/dist/src/validators/string/v_string.test.js +103 -0
  49. package/dist/src/validators/string/v_string.test.js.map +1 -0
  50. package/dist/src/validators/type.d.ts +2 -0
  51. package/dist/src/validators/type.js +3 -0
  52. package/dist/src/validators/type.js.map +1 -0
  53. package/dist/src/validators/validator.d.ts +9 -0
  54. package/dist/src/validators/validator.js +44 -0
  55. package/dist/src/validators/validator.js.map +1 -0
  56. package/package.json +31 -0
package/README.md ADDED
@@ -0,0 +1,186 @@
1
+ # Structure Validator# structure-verifier 0.0.1
2
+
3
+ structure-verifier is a typescrpt library to validate data of "any" type and to ensure that it corresponds to a data type.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install structure-verifier
9
+ ```
10
+
11
+ ## Example use
12
+
13
+ ```typescript
14
+ import { Validators as V,ValidationError } from "structure-verifier";
15
+ //////////Validator object creation
16
+ const v = new V.VNumber();
17
+ /////////Running validations
18
+
19
+ try {
20
+ let value = v.validate(10);
21
+ /////////Will get the value without error
22
+ } catch (error:any) {
23
+ console.log(error as ValidationError);
24
+ }
25
+
26
+ try {
27
+ let value = v.validate('TEST');
28
+ } catch (error:any) {
29
+ ///////////Will get the error, because the value is not a number
30
+ console.log(error as ValidationError);
31
+ }
32
+ ```
33
+ ## Types
34
+ In case it is necessary to infer the type of the response, it is achieved by using InferType
35
+
36
+ ```typescript
37
+ import { InferType } from "structure-verifier";
38
+
39
+ const val = new V.VNumber();
40
+ type valType = InferType<typeof val>;
41
+
42
+ function action(data:valType){
43
+ ...
44
+ }
45
+ ```
46
+ ## Validations
47
+
48
+ ### Numbers
49
+ Validations to numerical data
50
+ ```typescript
51
+ const numberVal = new V.VNumber();////return number|null
52
+ const notNullNumberVal = new V.VNumberNotNull() ////return number
53
+ ```
54
+ Number exclusive conditions
55
+
56
+ - **min:** - Used to denote the smallest valid number.
57
+ - **max:** - Used to denote the biggest valid number.
58
+ - **in:** - Used to denote an array of valid numbers that the value must be one of.
59
+ - **notIn:** - Used to denote an array of numbers that the value must not be one of.
60
+ - **maxDecimalPlaces:** - Used to denote the maximum number of decimal places allowed.
61
+ - **minDecimalPlaces:** - Used to denote the minimum number of decimal places required.
62
+
63
+ #### Example
64
+ ```typescript
65
+ const numberVal = new V.VNumber({
66
+ min:10,
67
+ max:20,
68
+ in: [15,16,17],
69
+ notIn: [18,19,20],
70
+ maxDecimalPlaces: 0,
71
+ minDecimalPlaces: 0
72
+ });
73
+ /////Validate a number or null that meets all conditions otherwise error (ValidationError)
74
+ ```
75
+ ***
76
+ ### Strings
77
+ Validations for string data.
78
+
79
+ ```typescript
80
+ const stringVal = new V.VString(); // Returns string | null
81
+ const notNullStringVal = new V.VStringNotNull(); // Returns string
82
+ ```
83
+ String Exclusive Conditions
84
+ - **minLength:** - Specifies the minimum length the string must have.
85
+ - **maxLength:** - Specifies the maximum length the string can have.
86
+ - **regex:** - Specifies a regular expression pattern the string must match.
87
+ - **notRegex:** - Specifies a regular expression pattern the string must not match.
88
+ - **in:** - Specifies an array of valid string values; the string must be one of these values.
89
+ - **notIn:** - Specifies an array of string values that the string must not be one of.
90
+ - **strictMode:** - When true, ensures the value is strictly a string (not coerced from another type).
91
+ - **ignoreCase:** - When true, makes the in condition case-insensitive.
92
+
93
+ #### Example
94
+ ```typescript
95
+ const stringVal = new V.VString({
96
+ minLength: 5,
97
+ maxLength: 10,
98
+ regex: /^[a-zA-Z]+$/,
99
+ notRegex: /[^a-zA-Z]/,
100
+ in: ['apple', 'banana', 'cherry'],
101
+ notIn: ['date', 'fig', 'grape'],
102
+ strictMode: true,
103
+ ignoreCase: true
104
+ });
105
+ ///// Validate a string or null that meets all conditions otherwise error (ValidationError)
106
+ ```
107
+
108
+ ### Booleans
109
+ Validations for boolean data.
110
+
111
+ ```typescript
112
+ const booleanVal = new V.VBoolean(); // Returns boolean | null
113
+ const notNullBooleanVal = new V.VBooleanNotNull(); // Returns boolean
114
+ ```
115
+
116
+ Boolean Exclusive Conditions
117
+
118
+ *No exclusive conditions for boolean validation*
119
+
120
+ #### Example
121
+ ```typescript
122
+ const booleanVal = new V.VBoolean();
123
+ const notNullBooleanVal = new V.VBooleanNotNull();
124
+
125
+ try {
126
+ console.log(booleanVal.validate('true')); // Output: true
127
+ console.log(booleanVal.validate('FALSE')); // Output: false
128
+ console.log(booleanVal.validate(null)); // Output: null
129
+ console.log(notNullBooleanVal.validate('1')); // Output: true
130
+ console.log(notNullBooleanVal.validate(0)); // Output: false
131
+ } catch (error) {
132
+ console.error(error);
133
+ }
134
+ ```
135
+
136
+ ### Objects
137
+ Validations for object data.
138
+
139
+ ```typescript
140
+ const objectVal = new V.VObject({ properties: { name: new V.VString({ minLength: 3 })/* properties with validations */ } }); // Returns object {name:""} | null
141
+ const notNullObjectVal = new V.VObjectNotNull({ properties: { name: new V.VString({ minLength: 3 })/* properties with validations */ } }); // Returns object {name:""}
142
+ ```
143
+
144
+ Object Exclusive Conditions
145
+
146
+ - **invalidPropertyMessage:** - Custom message for invalid properties.
147
+ - **strictMode:** - When `true`, ensures the object has exactly the same properties as defined.
148
+ - **ignoreCase:** - When `true`, makes the property names case-insensitive.
149
+ - **takeAllValues:** - When `true`, allows taking all values from the input object, not just those defined in the properties.
150
+
151
+ #### Example
152
+ ```typescript
153
+ const objectVal = new V.VObject({
154
+ properties: {
155
+ name: new V.VString({ minLength: 3 }),
156
+ age: new V.VNumber({ min: 18, max: 99 }),
157
+ },
158
+ strictMode: true,
159
+ ignoreCase: true,
160
+ invalidPropertyMessage: {
161
+ es: () => "propiedad no válida",
162
+ en: () => "invalid property"
163
+ }
164
+ });
165
+
166
+ const notNullObjectVal = new V.VObjectNotNull({
167
+ properties: {
168
+ name: new V.VStringNotNull({ minLength: 3 }),
169
+ age: new V.VNumberNotNull({ min: 18, max: 99 }),
170
+ },
171
+ strictMode: true,
172
+ ignoreCase: true,
173
+ invalidPropertyMessage: {
174
+ es: () => "propiedad no válida",
175
+ en: () => "invalid property"
176
+ }
177
+ });
178
+
179
+ try {
180
+ console.log(objectVal.validate({ name: 'John', age: 25 })); // Output: { name: 'John', age: 25 }
181
+ console.log(objectVal.validate(null)); // Output: null
182
+ console.log(notNullObjectVal.validate({ name: 'Jane', age: 30 })); // Output: { name: 'Jane', age: 30 }
183
+ } catch (error) {
184
+ console.error(error);
185
+ }
186
+ ```
@@ -0,0 +1,14 @@
1
+ import { VBoolean, VBooleanNotNull } from "./src/validators/boolean/v_boolean";
2
+ import { VNumber, VNumberNotNull } from "./src/validators/number/v_number";
3
+ import { VObject, VObjectNotNull } from "./src/validators/object/v_object";
4
+ import { VString, VStringNotNull } from "./src/validators/string/v_string";
5
+ export declare const Validators: {
6
+ VNumberNotNull: typeof VNumberNotNull;
7
+ VNumber: typeof VNumber;
8
+ VStringNotNull: typeof VStringNotNull;
9
+ VString: typeof VString;
10
+ VBoolean: typeof VBoolean;
11
+ VBooleanNotNull: typeof VBooleanNotNull;
12
+ VObjectNotNull: typeof VObjectNotNull;
13
+ VObject: typeof VObject;
14
+ };
package/dist/index.js ADDED
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Validators = void 0;
4
+ const v_boolean_1 = require("./src/validators/boolean/v_boolean");
5
+ const v_number_1 = require("./src/validators/number/v_number");
6
+ const v_object_1 = require("./src/validators/object/v_object");
7
+ const v_string_1 = require("./src/validators/string/v_string");
8
+ exports.Validators = {
9
+ VNumberNotNull: v_number_1.VNumberNotNull,
10
+ VNumber: v_number_1.VNumber,
11
+ VStringNotNull: v_string_1.VStringNotNull,
12
+ VString: v_string_1.VString,
13
+ VBoolean: v_boolean_1.VBoolean,
14
+ VBooleanNotNull: v_boolean_1.VBooleanNotNull,
15
+ VObjectNotNull: v_object_1.VObjectNotNull,
16
+ VObject: v_object_1.VObject
17
+ };
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,kEAA+E;AAC/E,+DAA2E;AAC3E,+DAA2E;AAC3E,+DAA2E;AAI9D,QAAA,UAAU,GAAG;IACtB,cAAc,EAAd,yBAAc;IACd,OAAO,EAAP,kBAAO;IACP,cAAc,EAAd,yBAAc;IACd,OAAO,EAAP,kBAAO;IACP,QAAQ,EAAR,oBAAQ;IACR,eAAe,EAAf,2BAAe;IACf,cAAc,EAAd,yBAAc;IACd,OAAO,EAAP,kBAAO;CACV,CAAA"}
@@ -0,0 +1,3 @@
1
+ export declare class ValConfig {
2
+ static lang: 'en' | 'es';
3
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ValConfig = void 0;
4
+ class ValConfig {
5
+ }
6
+ exports.ValConfig = ValConfig;
7
+ ValConfig.lang = 'es';
8
+ //# sourceMappingURL=validatorConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validatorConfig.js","sourceRoot":"","sources":["../../../src/src/config/validatorConfig.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAS;;AAAtB,8BAEC;AADU,cAAI,GAAgB,IAAI,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { messageResp } from "../interfaces/types";
2
+ export declare class ValidationError extends Error {
3
+ private _errors;
4
+ private _errorsObj;
5
+ constructor(messages: messageResp[]);
6
+ get errors(): {
7
+ message: string;
8
+ }[];
9
+ get errorsOnlyString(): string[];
10
+ get errorsObj(): messageResp[];
11
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ValidationError = void 0;
4
+ class ValidationError extends Error {
5
+ constructor(messages) {
6
+ super(messages.map(v => `${v.parent ? v.parent + '.' : ''}${v.key} ${v.message}`).join(';'));
7
+ this._errors = [];
8
+ this._errorsObj = [];
9
+ this.name = "ValidationError";
10
+ this._errors = messages.map(v => `${v.parent ? v.parent + '.' : ''}${v.key ? v.key + ' ' : ''}${v.message}`);
11
+ this._errorsObj = messages;
12
+ }
13
+ get errors() {
14
+ return this._errors.map(v => {
15
+ return {
16
+ message: v
17
+ };
18
+ });
19
+ }
20
+ get errorsOnlyString() {
21
+ return this._errors;
22
+ }
23
+ get errorsObj() {
24
+ return this._errorsObj;
25
+ }
26
+ }
27
+ exports.ValidationError = ValidationError;
28
+ //# sourceMappingURL=v_error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v_error.js","sourceRoot":"","sources":["../../../src/src/error/v_error.ts"],"names":[],"mappings":";;;AAEA,MAAa,eAAgB,SAAQ,KAAK;IAGtC,YAAY,QAAuB;QAC/B,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAHzF,YAAO,GAAa,EAAE,CAAA;QACtB,eAAU,GAAkB,EAAE,CAAA;QAGlC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;QAC5G,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAA;IAC9B,CAAC;IACD,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACxB,OAAO;gBACH,OAAO,EAAE,CAAC;aACb,CAAA;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAED,IAAI,gBAAgB;QAChB,OAAO,IAAI,CAAC,OAAO,CAAA;IACvB,CAAC;IACD,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,UAAU,CAAA;IAC1B,CAAC;CAEJ;AAxBD,0CAwBC"}
@@ -0,0 +1,28 @@
1
+ export type messageResp = {
2
+ key: string;
3
+ message: string;
4
+ parent?: string;
5
+ isEmpty?: boolean;
6
+ };
7
+ export type MessageType<T, K> = T | {
8
+ val: T;
9
+ message: (values: K) => string;
10
+ };
11
+ export interface VVCIsRequired {
12
+ isRequired?: MessageType<boolean, void>;
13
+ }
14
+ export interface VVCIsRequiredMessage {
15
+ isRequiredMessage?: string;
16
+ }
17
+ export interface VBadTypeMessage {
18
+ badTypeMessage?: string;
19
+ }
20
+ export interface VDefaultValue<T> {
21
+ defaultValue?: T;
22
+ }
23
+ export interface IInfo<T> {
24
+ info?: {
25
+ description?: string;
26
+ examples?: T[];
27
+ };
28
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/src/interfaces/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ export interface IMessageLanguage<K> {
2
+ es: (values: K) => string;
3
+ en: (values: K) => string;
4
+ }
5
+ export type MessageType<T, K> = T | {
6
+ val: T;
7
+ message: (values: K) => string;
8
+ };
9
+ export declare function getValue<T, K>(m: MessageType<T, K>): T;
10
+ export declare function getMessage<T, K>(m: MessageType<T, K>, values: K, message: IMessageLanguage<K>): string;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getValue = getValue;
4
+ exports.getMessage = getMessage;
5
+ const validatorConfig_1 = require("../config/validatorConfig");
6
+ function getValue(m) {
7
+ if (m instanceof RegExp) {
8
+ return m;
9
+ }
10
+ if (typeof m === 'object' && m !== null && 'val' in m && 'message' in m) {
11
+ if ('val' in m) {
12
+ return m.val;
13
+ }
14
+ throw new Error("Invalid object structure");
15
+ }
16
+ return m;
17
+ }
18
+ function getMessage(m, values, message) {
19
+ if (m instanceof RegExp) {
20
+ return message[validatorConfig_1.ValConfig.lang](values);
21
+ }
22
+ if (typeof m === 'object' && m !== null && 'val' in m && 'message' in m) {
23
+ if ('message' in m) {
24
+ return m.message(values);
25
+ }
26
+ throw new Error("Invalid object structure");
27
+ }
28
+ return message[validatorConfig_1.ValConfig.lang](values);
29
+ }
30
+ //# sourceMappingURL=message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/src/languages/message.ts"],"names":[],"mappings":";;AAQA,4BAWC;AAED,gCAWC;AAhCD,+DAAsD;AAQtD,SAAgB,QAAQ,CAAO,CAAoB;IAC/C,IAAI,CAAC,YAAY,MAAM,EAAE,CAAC;QACtB,OAAO,CAAM,CAAC;IAClB,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACtE,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACb,OAAO,CAAC,CAAC,GAAG,CAAC;QACjB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,CAAC,CAAC;AACb,CAAC;AAED,SAAgB,UAAU,CAAO,CAAoB,EAAE,MAAS,EAAE,OAA4B;IAC1F,IAAI,CAAC,YAAY,MAAM,EAAE,CAAC;QACtB,OAAO,OAAO,CAAC,2BAAS,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACtE,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YACjB,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,OAAO,CAAC,2BAAS,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;AAC3C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare class VAnyNotNull {
2
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VAnyNotNull = void 0;
4
+ class VAnyNotNull {
5
+ }
6
+ exports.VAnyNotNull = VAnyNotNull;
7
+ //# sourceMappingURL=v_any.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v_any.js","sourceRoot":"","sources":["../../../../src/src/validators/any/v_any.ts"],"names":[],"mappings":";;;AAAA,MAAa,WAAW;CAEvB;AAFD,kCAEC"}
@@ -0,0 +1,4 @@
1
+ export declare class VArray {
2
+ }
3
+ export declare class VArrayNotNull {
4
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VArrayNotNull = exports.VArray = void 0;
4
+ class VArray {
5
+ }
6
+ exports.VArray = VArray;
7
+ class VArrayNotNull {
8
+ }
9
+ exports.VArrayNotNull = VArrayNotNull;
10
+ //# sourceMappingURL=v_array.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v_array.js","sourceRoot":"","sources":["../../../../src/src/validators/array/v_array.ts"],"names":[],"mappings":";;;AAAA,MAAa,MAAM;CAElB;AAFD,wBAEC;AAED,MAAa,aAAa;CAEzB;AAFD,sCAEC"}
@@ -0,0 +1,15 @@
1
+ import { VBadTypeMessage, VDefaultValue, VVCIsRequired } from "../../interfaces/types";
2
+ import { Validation } from "../validator";
3
+ interface VBooleanConditions extends VBadTypeMessage, VDefaultValue<boolean>, VVCIsRequired {
4
+ }
5
+ export declare class VBooleanNotNull extends Validation<boolean> {
6
+ protected cond?: VBooleanConditions | undefined;
7
+ validate(data: any): boolean;
8
+ constructor(cond?: VBooleanConditions | undefined);
9
+ }
10
+ export declare class VBoolean extends Validation<boolean | null> {
11
+ protected cond?: VBooleanConditions | undefined;
12
+ validate(data: any): boolean | null;
13
+ constructor(cond?: VBooleanConditions | undefined);
14
+ }
15
+ export {};
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VBoolean = exports.VBooleanNotNull = void 0;
4
+ const v_error_1 = require("../../error/v_error");
5
+ const message_1 = require("../../languages/message");
6
+ const validator_1 = require("../validator");
7
+ function vBoolean(data, badTypeMessage, conds) {
8
+ if (data !== '1' && data !== '0' && data !== 1 && data !== 0 && data !== true && data !== false && (typeof data !== 'string' || data.toLowerCase() !== 'true' && data.toLowerCase() !== 'false'))
9
+ throw new v_error_1.ValidationError([{
10
+ key: "",
11
+ message: (0, message_1.getMessage)((conds === null || conds === void 0 ? void 0 : conds.badTypeMessage) != undefined ? conds === null || conds === void 0 ? void 0 : conds.badTypeMessage : undefined, undefined, badTypeMessage)
12
+ }]);
13
+ return data === '1' || data === 1 || data === true || (typeof data === 'string' && data.toLowerCase() === 'true');
14
+ }
15
+ class VBooleanNotNull extends validator_1.Validation {
16
+ validate(data) {
17
+ return vBoolean(this.isRequired(data, true), this.badTypeMessage, this.cond);
18
+ }
19
+ constructor(cond) {
20
+ super(cond);
21
+ this.cond = cond;
22
+ this.badTypeMessage = {
23
+ es: () => `debe ser un booleano`,
24
+ en: () => `must be a boolean`
25
+ };
26
+ }
27
+ }
28
+ exports.VBooleanNotNull = VBooleanNotNull;
29
+ class VBoolean extends validator_1.Validation {
30
+ validate(data) {
31
+ let val = this.isRequired(data);
32
+ if (val === null || val === undefined) {
33
+ return null;
34
+ }
35
+ return vBoolean(val, this.badTypeMessage, this.cond);
36
+ }
37
+ constructor(cond) {
38
+ super(cond);
39
+ this.cond = cond;
40
+ this.cond = cond;
41
+ this.badTypeMessage = {
42
+ es: () => `debe ser un booleano`,
43
+ en: () => `must be a boolean`
44
+ };
45
+ }
46
+ }
47
+ exports.VBoolean = VBoolean;
48
+ //# sourceMappingURL=v_boolean.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v_boolean.js","sourceRoot":"","sources":["../../../../src/src/validators/boolean/v_boolean.ts"],"names":[],"mappings":";;;AAAA,iDAAsD;AAEtD,qDAAuE;AACvE,4CAA0C;AAM1C,SAAS,QAAQ,CAAC,IAAS,EAAE,cAAsC,EAAE,KAA0B;IAC3F,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC;QAC5L,MAAM,IAAI,yBAAe,CAAC,CAAC;gBACvB,GAAG,EAAE,EAAE;gBACP,OAAO,EAAE,IAAA,oBAAU,EAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,cAAc,KAAI,SAAS,CAAC,CAAC,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,cAAc,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,cAAc,CAAC;aACzH,CAAC,CAAC,CAAA;IACP,OAAO,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC;AACtH,CAAC;AAED,MAAa,eAAgB,SAAQ,sBAAmB;IACpD,QAAQ,CAAC,IAAS;QACd,OAAO,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACjF,CAAC;IACD,YAAsB,IAAyB;QAC3C,KAAK,CAAC,IAAI,CAAC,CAAC;QADM,SAAI,GAAJ,IAAI,CAAqB;QAE3C,IAAI,CAAC,cAAc,GAAG;YAClB,EAAE,EAAE,GAAG,EAAE,CAAC,sBAAsB;YAChC,EAAE,EAAE,GAAG,EAAE,CAAC,mBAAmB;SAChC,CAAA;IACL,CAAC;CACJ;AAXD,0CAWC;AAED,MAAa,QAAS,SAAQ,sBAA0B;IACpD,QAAQ,CAAC,IAAS;QACd,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IACD,YAAsB,IAAyB;QAC3C,KAAK,CAAC,IAAI,CAAC,CAAC;QADM,SAAI,GAAJ,IAAI,CAAqB;QAE3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,cAAc,GAAG;YAClB,EAAE,EAAE,GAAG,EAAE,CAAC,sBAAsB;YAChC,EAAE,EAAE,GAAG,EAAE,CAAC,mBAAmB;SAChC,CAAA;IACL,CAAC;CACJ;AAhBD,4BAgBC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const index_1 = require("../../../index");
4
+ const v_error_1 = require("../../error/v_error");
5
+ describe('VBoolean', () => {
6
+ it('should validate true for various true values', () => {
7
+ const validator = new index_1.Validators.VBoolean();
8
+ expect(validator.validate('1')).toBe(true);
9
+ expect(validator.validate(1)).toBe(true);
10
+ expect(validator.validate(true)).toBe(true);
11
+ expect(validator.validate('TRUE')).toBe(true);
12
+ expect(validator.validate('true')).toBe(true);
13
+ });
14
+ it('should validate false for various false values', () => {
15
+ const validator = new index_1.Validators.VBoolean();
16
+ expect(validator.validate('0')).toBe(false);
17
+ expect(validator.validate(0)).toBe(false);
18
+ expect(validator.validate(false)).toBe(false);
19
+ expect(validator.validate('FALSE')).toBe(false);
20
+ expect(validator.validate('false')).toBe(false);
21
+ });
22
+ it('should throw a validation error for invalid boolean values', () => {
23
+ const validator = new index_1.Validators.VBoolean();
24
+ expect(() => validator.validate('string')).toThrow(v_error_1.ValidationError);
25
+ expect(() => validator.validate(123)).toThrow(v_error_1.ValidationError);
26
+ });
27
+ it('should return null for null or undefined values', () => {
28
+ const validator = new index_1.Validators.VBoolean();
29
+ expect(validator.validate(null)).toBeNull();
30
+ expect(validator.validate(undefined)).toBeNull();
31
+ });
32
+ });
33
+ describe('VBooleanNotNull', () => {
34
+ it('should validate true for various true values', () => {
35
+ const validator = new index_1.Validators.VBooleanNotNull();
36
+ expect(validator.validate('1')).toBe(true);
37
+ expect(validator.validate(1)).toBe(true);
38
+ expect(validator.validate(true)).toBe(true);
39
+ expect(validator.validate('TRUE')).toBe(true);
40
+ expect(validator.validate('true')).toBe(true);
41
+ });
42
+ it('should validate false for various false values', () => {
43
+ const validator = new index_1.Validators.VBooleanNotNull();
44
+ expect(validator.validate('0')).toBe(false);
45
+ expect(validator.validate(0)).toBe(false);
46
+ expect(validator.validate(false)).toBe(false);
47
+ expect(validator.validate('FALSE')).toBe(false);
48
+ expect(validator.validate('false')).toBe(false);
49
+ });
50
+ it('should throw a validation error for invalid boolean values', () => {
51
+ const validator = new index_1.Validators.VBooleanNotNull();
52
+ expect(() => validator.validate('string')).toThrow(v_error_1.ValidationError);
53
+ expect(() => validator.validate(123)).toThrow(v_error_1.ValidationError);
54
+ });
55
+ it('should throw a validation error for null or undefined values', () => {
56
+ const validator = new index_1.Validators.VBooleanNotNull();
57
+ expect(() => validator.validate(null)).toThrow(v_error_1.ValidationError);
58
+ expect(() => validator.validate(undefined)).toThrow(v_error_1.ValidationError);
59
+ });
60
+ });
61
+ //# sourceMappingURL=v_boolean.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v_boolean.test.js","sourceRoot":"","sources":["../../../../src/src/validators/boolean/v_boolean.test.ts"],"names":[],"mappings":"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"}
File without changes
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=v_date.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v_date.js","sourceRoot":"","sources":["../../../../src/src/validators/date/v_date.ts"],"names":[],"mappings":""}
@@ -0,0 +1,33 @@
1
+ import { IInfo, MessageType, VBadTypeMessage, VDefaultValue, VVCIsRequired } from "../../interfaces/types";
2
+ import { Validation } from "../validator";
3
+ interface VNumberConditions extends VBadTypeMessage, VDefaultValue<number>, VVCIsRequired, IInfo<number> {
4
+ min?: MessageType<number, {
5
+ min: number;
6
+ }>;
7
+ max?: MessageType<number, {
8
+ max: number;
9
+ }>;
10
+ in?: MessageType<number[], {
11
+ in: number[];
12
+ }>;
13
+ notIn?: MessageType<number[], {
14
+ notIn: number[];
15
+ }>;
16
+ maxDecimalPlaces?: MessageType<number, {
17
+ maxDecimalPlaces: number;
18
+ }>;
19
+ minDecimalPlaces?: MessageType<number, {
20
+ minDecimalPlaces: number;
21
+ }>;
22
+ }
23
+ export declare class VNumberNotNull extends Validation<number> {
24
+ protected cond?: VNumberConditions | undefined;
25
+ validate(data: any): number;
26
+ constructor(cond?: VNumberConditions | undefined);
27
+ }
28
+ export declare class VNumber extends Validation<number | null> {
29
+ protected cond?: VNumberConditions | undefined;
30
+ validate(data: any): number | null;
31
+ constructor(cond?: VNumberConditions | undefined);
32
+ }
33
+ export {};