quantique-field-validator 1.0.6 → 1.0.9

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.
@@ -1,67 +1,67 @@
1
- // Name validation
2
- const validateName = (
3
- value,
4
- rules = { type: 'user' },
5
- defaultErrorMessages,
6
- type
7
- ) => {
8
- // First check if value is empty or just whitespace
9
- if (!value || !value.trim()) {
10
- return {
11
- isValid: false,
12
- error: rules?.errorMessages?.empty || 'Name cannot be empty',
13
- };
14
- }
15
-
16
- // Check length constraints
17
- if (rules?.minLength && value?.length < rules?.minLength) {
18
- return {
19
- isValid: false,
20
- error:
21
- rules?.errorMessages?.minLength ||
22
- defaultErrorMessages(rules, type).minLength,
23
- };
24
- }
25
-
26
- if (rules?.maxLength && value?.length > rules?.maxLength) {
27
- return {
28
- isValid: false,
29
- error:
30
- rules?.errorMessages?.maxLength ||
31
- defaultErrorMessages(rules, type).maxLength,
32
- };
33
- }
34
-
35
- // Default name validation (only letters, spaces, and basic punctuation)
36
- // Check against custom regex if provided
37
- if (rules?.type === 'user') {
38
- const defaultRegex = /^(?=.*[a-zA-ZÀ-ÿ])[a-zA-ZÀ-ÿ\s'-.]*$/;
39
- const regexToUse = rules?.regex ? new RegExp(rules.regex) : defaultRegex;
40
-
41
- if (!regexToUse.test(value)) {
42
- return {
43
- isValid: false,
44
- error:
45
- rules?.errorMessages?.invalid || 'Name contains invalid characters',
46
- };
47
- }
48
- }
49
-
50
- if (rules?.type === 'corporate') {
51
- const defaultRegex = /^(?=.*[A-Za-z0-9])[A-Za-z0-9&.,'()\- ]*$/;
52
- const regexToUse = rules?.regex ? new RegExp(rules.regex) : defaultRegex;
53
-
54
- if (!regexToUse.test(value)) {
55
- return {
56
- isValid: false,
57
- error:
58
- rules?.errorMessages?.invalid ||
59
- 'Corporate Name contains invalid characters',
60
- };
61
- }
62
- }
63
-
64
- return { isValid: true, error: '' };
65
- };
66
-
67
- module.exports = validateName;
1
+ // Name validation
2
+ const validateName = (
3
+ value,
4
+ rules = { type: 'user' },
5
+ defaultErrorMessages,
6
+ type
7
+ ) => {
8
+ // First check if value is empty or just whitespace
9
+ if (!value || !value.trim()) {
10
+ return {
11
+ isValid: false,
12
+ error: rules?.errorMessages?.empty || 'Name cannot be empty',
13
+ };
14
+ }
15
+
16
+ // Check length constraints
17
+ if (rules?.minLength && value?.length < rules?.minLength) {
18
+ return {
19
+ isValid: false,
20
+ error:
21
+ rules?.errorMessages?.minLength ||
22
+ defaultErrorMessages(rules, type).minLength,
23
+ };
24
+ }
25
+
26
+ if (rules?.maxLength && value?.length > rules?.maxLength) {
27
+ return {
28
+ isValid: false,
29
+ error:
30
+ rules?.errorMessages?.maxLength ||
31
+ defaultErrorMessages(rules, type).maxLength,
32
+ };
33
+ }
34
+
35
+ // Default name validation (only letters, spaces, and basic punctuation)
36
+ // Check against custom regex if provided
37
+ if (rules?.type === 'user') {
38
+ const defaultRegex = /^(?=.*[a-zA-ZÀ-ÿ])[a-zA-ZÀ-ÿ\s'-.]*$/;
39
+ const regexToUse = rules?.regex ? new RegExp(rules.regex) : defaultRegex;
40
+
41
+ if (!regexToUse.test(value)) {
42
+ return {
43
+ isValid: false,
44
+ error:
45
+ rules?.errorMessages?.invalid || 'Name contains invalid characters',
46
+ };
47
+ }
48
+ }
49
+
50
+ if (rules?.type === 'corporate') {
51
+ const defaultRegex = /^(?=.*[A-Za-z0-9])[A-Za-z0-9&.,'()\- ]*$/;
52
+ const regexToUse = rules?.regex ? new RegExp(rules.regex) : defaultRegex;
53
+
54
+ if (!regexToUse.test(value)) {
55
+ return {
56
+ isValid: false,
57
+ error:
58
+ rules?.errorMessages?.invalid ||
59
+ 'Corporate Name contains invalid characters',
60
+ };
61
+ }
62
+ }
63
+
64
+ return { isValid: true, error: '' };
65
+ };
66
+
67
+ module.exports = validateName;
@@ -1,75 +1,75 @@
1
- // Number validation
2
- const validateNumber = (value, rules, defaultErrorMessages, type) => {
3
- // Reject if value contains spaces
4
- if (/\s/.test(value)) {
5
- return {
6
- isValid: false,
7
- error:
8
- rules?.errorMessages?.invalid ||
9
- defaultErrorMessages(rules, type).noSpace ||
10
- defaultErrorMessages(rules, type).invalid,
11
- };
12
- }
13
-
14
- // Whole number only regex
15
- const defaultNumberRegex = /^\d+$/;
16
- const regexToUse = rules?.regex
17
- ? new RegExp(rules.regex)
18
- : defaultNumberRegex;
19
-
20
- if (!regexToUse.test(value)) {
21
- return {
22
- isValid: false,
23
- error:
24
- rules?.errorMessages?.invalid ||
25
- defaultErrorMessages(rules, type).invalid ||
26
- "Please enter a valid whole number",
27
- };
28
- }
29
-
30
- const numberValue = Number(value);
31
-
32
- // Length checks (on the string)
33
- if (rules?.minLength && value.length < rules.minLength) {
34
- return {
35
- isValid: false,
36
- error:
37
- rules?.errorMessages?.minLength ||
38
- defaultErrorMessages(rules, type).minLength,
39
- };
40
- }
41
-
42
- if (rules?.maxLength && value.length > rules.maxLength) {
43
- return {
44
- isValid: false,
45
- error:
46
- rules?.errorMessages?.maxLength ||
47
- defaultErrorMessages(rules, type).maxLength,
48
- };
49
- }
50
-
51
- // Value range checks
52
- if (rules?.minValue !== undefined && numberValue < rules.minValue) {
53
- return {
54
- isValid: false,
55
- error:
56
- rules?.errorMessages?.minValue ||
57
- defaultErrorMessages(rules, type).minValue ||
58
- `Value must be at least ${rules.minValue}`,
59
- };
60
- }
61
-
62
- if (rules?.maxValue !== undefined && numberValue > rules.maxValue) {
63
- return {
64
- isValid: false,
65
- error:
66
- rules?.errorMessages?.maxValue ||
67
- defaultErrorMessages(rules, type).maxValue ||
68
- `Value must not exceed ${rules.maxValue}`,
69
- };
70
- }
71
-
72
- return { isValid: true, error: "" };
73
- };
74
-
75
- module.exports = validateNumber;
1
+ // Number validation
2
+ const validateNumber = (value, rules, defaultErrorMessages, type) => {
3
+ // Reject if value contains spaces
4
+ if (/\s/.test(value)) {
5
+ return {
6
+ isValid: false,
7
+ error:
8
+ rules?.errorMessages?.invalid ||
9
+ defaultErrorMessages(rules, type).noSpace ||
10
+ defaultErrorMessages(rules, type).invalid,
11
+ };
12
+ }
13
+
14
+ // Whole number only regex
15
+ const defaultNumberRegex = /^\d+$/;
16
+ const regexToUse = rules?.regex
17
+ ? new RegExp(rules.regex)
18
+ : defaultNumberRegex;
19
+
20
+ if (!regexToUse.test(value)) {
21
+ return {
22
+ isValid: false,
23
+ error:
24
+ rules?.errorMessages?.invalid ||
25
+ defaultErrorMessages(rules, type).invalid ||
26
+ "Please enter a valid whole number",
27
+ };
28
+ }
29
+
30
+ const numberValue = Number(value);
31
+
32
+ // Length checks (on the string)
33
+ if (rules?.minLength && value.length < rules.minLength) {
34
+ return {
35
+ isValid: false,
36
+ error:
37
+ rules?.errorMessages?.minLength ||
38
+ defaultErrorMessages(rules, type).minLength,
39
+ };
40
+ }
41
+
42
+ if (rules?.maxLength && value.length > rules.maxLength) {
43
+ return {
44
+ isValid: false,
45
+ error:
46
+ rules?.errorMessages?.maxLength ||
47
+ defaultErrorMessages(rules, type).maxLength,
48
+ };
49
+ }
50
+
51
+ // Value range checks
52
+ if (rules?.minValue !== undefined && numberValue < rules.minValue) {
53
+ return {
54
+ isValid: false,
55
+ error:
56
+ rules?.errorMessages?.minValue ||
57
+ defaultErrorMessages(rules, type).minValue ||
58
+ `Value must be at least ${rules.minValue}`,
59
+ };
60
+ }
61
+
62
+ if (rules?.maxValue !== undefined && numberValue > rules.maxValue) {
63
+ return {
64
+ isValid: false,
65
+ error:
66
+ rules?.errorMessages?.maxValue ||
67
+ defaultErrorMessages(rules, type).maxValue ||
68
+ `Value must not exceed ${rules.maxValue}`,
69
+ };
70
+ }
71
+
72
+ return { isValid: true, error: "" };
73
+ };
74
+
75
+ module.exports = validateNumber;
@@ -1,23 +1,23 @@
1
- const validatePanCard = (
2
- value,
3
- rules,
4
- defaultErrorMessages,
5
- type
6
- ) => {
7
- const defaultRegex = /^[A-Z]{5}[0-9]{4}[A-Z]{1}$/;
8
- const regexToUse = rules?.regex ? new RegExp(rules.regex) : defaultRegex;
9
-
10
- if (!regexToUse.test(value)) {
11
- return {
12
- isValid: false,
13
- error:
14
- rules?.errorMessages?.regex ||
15
- rules?.errorMessages?.invalid ||
16
- defaultErrorMessages(rules, type).invalid,
17
- };
18
- }
19
-
20
- return { isValid: true, error: "" };
21
- };
22
-
23
- module.exports = validatePanCard;
1
+ const validatePanCard = (
2
+ value,
3
+ rules,
4
+ defaultErrorMessages,
5
+ type
6
+ ) => {
7
+ const defaultRegex = /^[A-Z]{5}[0-9]{4}[A-Z]{1}$/;
8
+ const regexToUse = rules?.regex ? new RegExp(rules.regex) : defaultRegex;
9
+
10
+ if (!regexToUse.test(value)) {
11
+ return {
12
+ isValid: false,
13
+ error:
14
+ rules?.errorMessages?.regex ||
15
+ rules?.errorMessages?.invalid ||
16
+ defaultErrorMessages(rules, type).invalid,
17
+ };
18
+ }
19
+
20
+ return { isValid: true, error: "" };
21
+ };
22
+
23
+ module.exports = validatePanCard;
@@ -1,38 +1,38 @@
1
- // Add password validation
2
- const validatePassword = (value, rules, defaultErrorMessages, type) => {
3
- // Check length constraints
4
- if (rules?.minLength && value.length < rules?.minLength) {
5
- return {
6
- isValid: false,
7
- error:
8
- rules?.errorMessages?.minLength ||
9
- defaultErrorMessages(rules, type).minLength,
10
- };
11
- }
12
-
13
- if (rules?.maxLength && value.length > rules?.maxLength) {
14
- return {
15
- isValid: false,
16
- error:
17
- rules?.errorMessages?.maxLength ||
18
- defaultErrorMessages(rules, type).maxLength,
19
- };
20
- }
21
-
22
- // Check against custom regex if provided
23
- const defaultRegex = /^(?=.*[A-Za-z])(?=.*\d).+$/;
24
- const regexToUse = rules?.regex ? new RegExp(rules.regex) : defaultRegex;
25
-
26
- if (!regexToUse.test(value)) {
27
- return {
28
- isValid: false,
29
- error:
30
- rules?.errorMessages?.invalid ||
31
- "Password must contain at least one letter and one number",
32
- };
33
- }
34
-
35
- return { isValid: true, error: "" };
36
- };
37
-
38
- module.exports = validatePassword;
1
+ // Add password validation
2
+ const validatePassword = (value, rules, defaultErrorMessages, type) => {
3
+ // Check length constraints
4
+ if (rules?.minLength && value.length < rules?.minLength) {
5
+ return {
6
+ isValid: false,
7
+ error:
8
+ rules?.errorMessages?.minLength ||
9
+ defaultErrorMessages(rules, type).minLength,
10
+ };
11
+ }
12
+
13
+ if (rules?.maxLength && value.length > rules?.maxLength) {
14
+ return {
15
+ isValid: false,
16
+ error:
17
+ rules?.errorMessages?.maxLength ||
18
+ defaultErrorMessages(rules, type).maxLength,
19
+ };
20
+ }
21
+
22
+ // Check against custom regex if provided
23
+ const defaultRegex = /^(?=.*[A-Za-z])(?=.*\d).+$/;
24
+ const regexToUse = rules?.regex ? new RegExp(rules.regex) : defaultRegex;
25
+
26
+ if (!regexToUse.test(value)) {
27
+ return {
28
+ isValid: false,
29
+ error:
30
+ rules?.errorMessages?.invalid ||
31
+ "Password must contain at least one letter and one number",
32
+ };
33
+ }
34
+
35
+ return { isValid: true, error: "" };
36
+ };
37
+
38
+ module.exports = validatePassword;
@@ -1,41 +1,41 @@
1
- // RTO validation
2
- const validateRTO = (value, rules, defaultErrorMessages, type) => {
3
- if (rules?.minLength && value?.length < rules?.minLength) {
4
- return {
5
- isValid: false,
6
- error:
7
- rules?.errorMessages?.minLength ||
8
- defaultErrorMessages(rules, type).minLength,
9
- };
10
- }
11
-
12
- if (rules?.maxLength && value?.length > rules?.maxLength) {
13
- return {
14
- isValid: false,
15
- error:
16
- rules?.errorMessages?.maxLength ||
17
- defaultErrorMessages(rules, type).maxLength,
18
- };
19
- }
20
-
21
- const defaultRegex =
22
- rules?.version === 'new'
23
- ? /^[A-Z]{2}-[0-9]{1,2}(-[A-Z]{1,2})?$/
24
- : rules?.version === 'all'
25
- ? /^[A-Z]{2}-?[0-9]{1,2}(-?[A-Z]{1,2})?$/
26
- : /^[A-Z]{2}-[0-9]{1,2}$/;
27
- const regexToUse = rules?.regex ? new RegExp(rules.regex) : defaultRegex;
28
- if (!regexToUse.test(value)) {
29
- return {
30
- isValid: false,
31
- error: rules?.errorMessages?.invalid
32
- ? rules?.errorMessages?.invalid
33
- : defaultErrorMessages(rules, type).rto ||
34
- defaultErrorMessages(rules, type).invalid,
35
- };
36
- }
37
-
38
- return { isValid: true, error: '' };
39
- };
40
-
41
- module.exports = validateRTO;
1
+ // RTO validation
2
+ const validateRTO = (value, rules, defaultErrorMessages, type) => {
3
+ if (rules?.minLength && value?.length < rules?.minLength) {
4
+ return {
5
+ isValid: false,
6
+ error:
7
+ rules?.errorMessages?.minLength ||
8
+ defaultErrorMessages(rules, type).minLength,
9
+ };
10
+ }
11
+
12
+ if (rules?.maxLength && value?.length > rules?.maxLength) {
13
+ return {
14
+ isValid: false,
15
+ error:
16
+ rules?.errorMessages?.maxLength ||
17
+ defaultErrorMessages(rules, type).maxLength,
18
+ };
19
+ }
20
+
21
+ const defaultRegex =
22
+ rules?.version === 'new'
23
+ ? /^[A-Z]{2}-[0-9]{1,2}(-[A-Z]{1,2})?$/
24
+ : rules?.version === 'all'
25
+ ? /^[A-Z]{2}-?[0-9]{1,2}(-?[A-Z]{1,2})?$/
26
+ : /^[A-Z]{2}-[0-9]{1,2}$/;
27
+ const regexToUse = rules?.regex ? new RegExp(rules.regex) : defaultRegex;
28
+ if (!regexToUse.test(value)) {
29
+ return {
30
+ isValid: false,
31
+ error: rules?.errorMessages?.invalid
32
+ ? rules?.errorMessages?.invalid
33
+ : defaultErrorMessages(rules, type).rto ||
34
+ defaultErrorMessages(rules, type).invalid,
35
+ };
36
+ }
37
+
38
+ return { isValid: true, error: '' };
39
+ };
40
+
41
+ module.exports = validateRTO;
@@ -1,41 +1,41 @@
1
- // String validation
2
- const validateString = (value, rules, defaultErrorMessages, type) => {
3
- if (typeof value !== "string") {
4
- return {
5
- isValid: false,
6
- error:
7
- rules?.errorMessages?.invalid ||
8
- defaultErrorMessages(rules, type).invalid,
9
- };
10
- }
11
- if (rules?.minLength && value.length < rules?.minLength) {
12
- return {
13
- isValid: false,
14
- error:
15
- rules?.errorMessages?.minLength ||
16
- defaultErrorMessages(rules, type).minLength,
17
- };
18
- }
19
-
20
- if (rules?.maxLength && value.length > rules?.maxLength) {
21
- return {
22
- isValid: false,
23
- error:
24
- rules?.errorMessages?.maxLength ||
25
- defaultErrorMessages(rules, type).maxLength,
26
- };
27
- }
28
-
29
- if (rules?.regex && !new RegExp(rules?.regex).test(value)) {
30
- return {
31
- isValid: false,
32
- error:
33
- rules?.errorMessages?.invalid ||
34
- defaultErrorMessages(rules, type).invalid,
35
- };
36
- }
37
-
38
- return { isValid: true, error: "" };
39
- };
40
-
41
- module.exports = validateString;
1
+ // String validation
2
+ const validateString = (value, rules, defaultErrorMessages, type) => {
3
+ if (typeof value !== "string") {
4
+ return {
5
+ isValid: false,
6
+ error:
7
+ rules?.errorMessages?.invalid ||
8
+ defaultErrorMessages(rules, type).invalid,
9
+ };
10
+ }
11
+ if (rules?.minLength && value.length < rules?.minLength) {
12
+ return {
13
+ isValid: false,
14
+ error:
15
+ rules?.errorMessages?.minLength ||
16
+ defaultErrorMessages(rules, type).minLength,
17
+ };
18
+ }
19
+
20
+ if (rules?.maxLength && value.length > rules?.maxLength) {
21
+ return {
22
+ isValid: false,
23
+ error:
24
+ rules?.errorMessages?.maxLength ||
25
+ defaultErrorMessages(rules, type).maxLength,
26
+ };
27
+ }
28
+
29
+ if (rules?.regex && !new RegExp(rules?.regex).test(value)) {
30
+ return {
31
+ isValid: false,
32
+ error:
33
+ rules?.errorMessages?.invalid ||
34
+ defaultErrorMessages(rules, type).invalid,
35
+ };
36
+ }
37
+
38
+ return { isValid: true, error: "" };
39
+ };
40
+
41
+ module.exports = validateString;