@webiny/validation 6.3.0 → 6.4.0-beta.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.
- package/index.js +30 -30
- package/index.js.map +1 -1
- package/package.json +4 -4
- package/types.js +0 -3
- package/validation.js +62 -136
- package/validation.js.map +1 -1
- package/validationError.js +8 -10
- package/validationError.js.map +1 -1
- package/validators/creditCard.js +23 -46
- package/validators/creditCard.js.map +1 -1
- package/validators/dateGte.js +10 -20
- package/validators/dateGte.js.map +1 -1
- package/validators/dateLte.js +10 -20
- package/validators/dateLte.js.map +1 -1
- package/validators/email.js +8 -25
- package/validators/email.js.map +1 -1
- package/validators/eq.js +7 -28
- package/validators/eq.js.map +1 -1
- package/validators/gt.js +7 -25
- package/validators/gt.js.map +1 -1
- package/validators/gte.js +7 -25
- package/validators/gte.js.map +1 -1
- package/validators/in.js +7 -12
- package/validators/in.js.map +1 -1
- package/validators/integer.js +6 -9
- package/validators/integer.js.map +1 -1
- package/validators/json.js +9 -10
- package/validators/json.js.map +1 -1
- package/validators/lt.js +7 -10
- package/validators/lt.js.map +1 -1
- package/validators/lte.js +7 -10
- package/validators/lte.js.map +1 -1
- package/validators/maxLength.js +10 -18
- package/validators/maxLength.js.map +1 -1
- package/validators/minLength.js +10 -18
- package/validators/minLength.js.map +1 -1
- package/validators/number.js +7 -17
- package/validators/number.js.map +1 -1
- package/validators/numeric.js +8 -23
- package/validators/numeric.js.map +1 -1
- package/validators/password.js +8 -11
- package/validators/password.js.map +1 -1
- package/validators/phone.js +7 -10
- package/validators/phone.js.map +1 -1
- package/validators/required.js +6 -7
- package/validators/required.js.map +1 -1
- package/validators/slug.js +7 -10
- package/validators/slug.js.map +1 -1
- package/validators/time/index.js +28 -55
- package/validators/time/index.js.map +1 -1
- package/validators/timeGte.js +9 -19
- package/validators/timeGte.js.map +1 -1
- package/validators/timeLte.js +9 -19
- package/validators/timeLte.js.map +1 -1
- package/validators/url.js +18 -29
- package/validators/url.js.map +1 -1
- package/types.js.map +0 -1
package/validators/password.js
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const test = value.match(new RegExp(`^.{${length},}$`));
|
|
9
|
-
if (test === null) {
|
|
10
|
-
throw new ValidationError(`Password must contain at least ${length} characters`);
|
|
11
|
-
}
|
|
1
|
+
import validationError from "../validationError.js";
|
|
2
|
+
const validators_password = (value, params)=>{
|
|
3
|
+
if (!value) return;
|
|
4
|
+
value += "";
|
|
5
|
+
const length = params ? params[0] || 6 : 6;
|
|
6
|
+
const test = value.match(new RegExp(`^.{${length},}$`));
|
|
7
|
+
if (null === test) throw new validationError(`Password must contain at least ${length} characters`);
|
|
12
8
|
};
|
|
9
|
+
export default validators_password;
|
|
13
10
|
|
|
14
11
|
//# sourceMappingURL=password.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"validators/password.js","sources":["../../src/validators/password.ts"],"sourcesContent":["import ValidationError from \"~/validationError.js\";\n\nexport default (value: any, params?: string[]) => {\n if (!value) {\n return;\n }\n value = value + \"\";\n\n const length = params ? params[0] || 6 : 6;\n const test = value.match(new RegExp(`^.{${length},}$`));\n if (test === null) {\n throw new ValidationError(`Password must contain at least ${length} characters`);\n }\n};\n"],"names":["value","params","length","test","RegExp","ValidationError"],"mappings":";AAEA,4BAAgB,CAAAA,OAAYC;IACxB,IAAI,CAACD,OACD;IAEJA,SAAgB;IAEhB,MAAME,SAASD,SAASA,MAAM,CAAC,EAAE,IAAI,IAAI;IACzC,MAAME,OAAOH,MAAM,KAAK,CAAC,IAAII,OAAO,CAAC,GAAG,EAAEF,OAAO,GAAG,CAAC;IACrD,IAAIC,AAAS,SAATA,MACA,MAAM,IAAIE,gBAAgB,CAAC,+BAA+B,EAAEH,OAAO,WAAW,CAAC;AAEvF"}
|
package/validators/phone.js
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
if (value.match(/^[-+0-9()/\s]+$/)) {
|
|
8
|
-
return;
|
|
9
|
-
}
|
|
10
|
-
throw new ValidationError("Value must be a valid phone number.");
|
|
1
|
+
import validationError from "../validationError.js";
|
|
2
|
+
const phone = (value)=>{
|
|
3
|
+
if (!value) return;
|
|
4
|
+
value += "";
|
|
5
|
+
if (value.match(/^[-+0-9()/\s]+$/)) return;
|
|
6
|
+
throw new validationError("Value must be a valid phone number.");
|
|
11
7
|
};
|
|
8
|
+
export default phone;
|
|
12
9
|
|
|
13
10
|
//# sourceMappingURL=phone.js.map
|
package/validators/phone.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"validators/phone.js","sources":["../../src/validators/phone.ts"],"sourcesContent":["import ValidationError from \"~/validationError.js\";\n\nexport default (value: any) => {\n if (!value) {\n return;\n }\n value = value + \"\";\n\n if (value.match(/^[-+0-9()/\\s]+$/)) {\n return;\n }\n throw new ValidationError(\"Value must be a valid phone number.\");\n};\n"],"names":["value","ValidationError"],"mappings":";AAEA,cAAgB,CAAAA;IACZ,IAAI,CAACA,OACD;IAEJA,SAAgB;IAEhB,IAAIA,MAAM,KAAK,CAAC,oBACZ;IAEJ,MAAM,IAAIC,gBAAgB;AAC9B"}
|
package/validators/required.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
const throwError = ()
|
|
3
|
-
|
|
1
|
+
import validationError from "../validationError.js";
|
|
2
|
+
const throwError = ()=>{
|
|
3
|
+
throw new validationError("Value is required.");
|
|
4
4
|
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
throwError();
|
|
8
|
-
}
|
|
5
|
+
const required = (value)=>{
|
|
6
|
+
if ("" === value || null == value) throwError();
|
|
9
7
|
};
|
|
8
|
+
export default required;
|
|
10
9
|
|
|
11
10
|
//# sourceMappingURL=required.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"validators/required.js","sources":["../../src/validators/required.ts"],"sourcesContent":["import ValidationError from \"~/validationError.js\";\n\nconst throwError = () => {\n throw new ValidationError(\"Value is required.\");\n};\n\nexport default (value: any) => {\n if (value === \"\" || value === null || value === undefined) {\n throwError();\n }\n};\n"],"names":["throwError","ValidationError","value"],"mappings":";AAEA,MAAMA,aAAa;IACf,MAAM,IAAIC,gBAAgB;AAC9B;AAEA,iBAAgB,CAAAC;IACZ,IAAIA,AAAU,OAAVA,SAAkCA,QAAlBA,OAChBF;AAER"}
|
package/validators/slug.js
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
if (value.match(/^[a-z0-9]+(-[a-z0-9]+)*$/)) {
|
|
8
|
-
return;
|
|
9
|
-
}
|
|
10
|
-
throw new ValidationError("Slug must consist of only 'a-z', '0-9' and '-' (for example: 'some-slug' or 'some-slug-2')");
|
|
1
|
+
import validationError from "../validationError.js";
|
|
2
|
+
const slug = (value)=>{
|
|
3
|
+
if (!value) return;
|
|
4
|
+
value += "";
|
|
5
|
+
if (value.match(/^[a-z0-9]+(-[a-z0-9]+)*$/)) return;
|
|
6
|
+
throw new validationError("Slug must consist of only 'a-z', '0-9' and '-' (for example: 'some-slug' or 'some-slug-2')");
|
|
11
7
|
};
|
|
8
|
+
export default slug;
|
|
12
9
|
|
|
13
10
|
//# sourceMappingURL=slug.js.map
|
package/validators/slug.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"validators/slug.js","sources":["../../src/validators/slug.ts"],"sourcesContent":["import ValidationError from \"~/validationError.js\";\n\nexport default (value: any) => {\n if (!value) {\n return;\n }\n value = value + \"\";\n\n if (value.match(/^[a-z0-9]+(-[a-z0-9]+)*$/)) {\n return;\n }\n\n throw new ValidationError(\n \"Slug must consist of only 'a-z', '0-9' and '-' (for example: 'some-slug' or 'some-slug-2')\"\n );\n};\n"],"names":["value","ValidationError"],"mappings":";AAEA,aAAgB,CAAAA;IACZ,IAAI,CAACA,OACD;IAEJA,SAAgB;IAEhB,IAAIA,MAAM,KAAK,CAAC,6BACZ;IAGJ,MAAM,IAAIC,gBACN;AAER"}
|
package/validators/time/index.js
CHANGED
|
@@ -1,60 +1,33 @@
|
|
|
1
|
-
import
|
|
2
|
-
const parseTime = value
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
throw new
|
|
10
|
-
|
|
11
|
-
throw new
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
throw new ValidationError(`There cannot be more than 59 seconds. Value parsed is "${value}".`);
|
|
18
|
-
} else if (seconds < 0) {
|
|
19
|
-
throw new ValidationError(`Seconds cannot go into negative. Value parsed is "${value}".`);
|
|
20
|
-
}
|
|
21
|
-
return {
|
|
22
|
-
hours,
|
|
23
|
-
minutes,
|
|
24
|
-
seconds
|
|
25
|
-
};
|
|
1
|
+
import validationError from "../../validationError.js";
|
|
2
|
+
const parseTime = (value)=>{
|
|
3
|
+
const parsed = value.split(":").map(Number);
|
|
4
|
+
if (parsed.length < 2) throw new validationError(`Value "${value}" does not look like time.`);
|
|
5
|
+
const [hours, minutes, seconds = 0] = parsed;
|
|
6
|
+
if (hours >= 24) throw new validationError(`There cannot be more than 24 hours. Value parsed is "${value}".`);
|
|
7
|
+
if (hours < 0) throw new validationError(`Hours cannot go into negative. Value parsed is "${value}".`);
|
|
8
|
+
if (minutes >= 60) throw new validationError(`There cannot be more than 59 minutes. Value parsed is "${value}".`);
|
|
9
|
+
if (minutes < 0) throw new validationError(`Minutes cannot go into negative. Value parsed is "${value}".`);
|
|
10
|
+
if (seconds >= 60) throw new validationError(`There cannot be more than 59 seconds. Value parsed is "${value}".`);
|
|
11
|
+
else if (seconds < 0) throw new validationError(`Seconds cannot go into negative. Value parsed is "${value}".`);
|
|
12
|
+
return {
|
|
13
|
+
hours,
|
|
14
|
+
minutes,
|
|
15
|
+
seconds
|
|
16
|
+
};
|
|
26
17
|
};
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
} = parseTime(time);
|
|
38
|
-
const {
|
|
39
|
-
hours: compareToHours,
|
|
40
|
-
minutes: compareToMinutes,
|
|
41
|
-
seconds: compareToSeconds
|
|
42
|
-
} = parseTime(compareTo);
|
|
43
|
-
if (timeHours > compareToHours) {
|
|
44
|
-
return 1;
|
|
45
|
-
}
|
|
46
|
-
if (timeHours === compareToHours) {
|
|
47
|
-
if (timeMinutes > compareToMinutes) {
|
|
48
|
-
return 1;
|
|
49
|
-
} else if (timeMinutes === compareToMinutes) {
|
|
50
|
-
if (timeSeconds > compareToSeconds) {
|
|
51
|
-
return 1;
|
|
52
|
-
} else if (timeSeconds === compareToSeconds) {
|
|
53
|
-
return 0;
|
|
54
|
-
}
|
|
18
|
+
const compareTime = (time, compareTo)=>{
|
|
19
|
+
const { hours: timeHours, minutes: timeMinutes, seconds: timeSeconds } = parseTime(time);
|
|
20
|
+
const { hours: compareToHours, minutes: compareToMinutes, seconds: compareToSeconds } = parseTime(compareTo);
|
|
21
|
+
if (timeHours > compareToHours) return 1;
|
|
22
|
+
if (timeHours === compareToHours) {
|
|
23
|
+
if (timeMinutes > compareToMinutes) return 1;
|
|
24
|
+
else if (timeMinutes === compareToMinutes) {
|
|
25
|
+
if (timeSeconds > compareToSeconds) return 1;
|
|
26
|
+
else if (timeSeconds === compareToSeconds) return 0;
|
|
27
|
+
}
|
|
55
28
|
}
|
|
56
|
-
|
|
57
|
-
return -1;
|
|
29
|
+
return -1;
|
|
58
30
|
};
|
|
31
|
+
export { compareTime };
|
|
59
32
|
|
|
60
33
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"validators/time/index.js","sources":["../../../src/validators/time/index.ts"],"sourcesContent":["import ValidationError from \"~/validationError.js\";\n\ninterface ParsedTimeResult {\n hours: number;\n minutes: number;\n seconds: number;\n}\nconst parseTime = (value: string): ParsedTimeResult => {\n const parsed = value.split(\":\").map(Number);\n if (parsed.length < 2) {\n throw new ValidationError(`Value \"${value}\" does not look like time.`);\n }\n const [hours, minutes, seconds = 0] = parsed;\n if (hours >= 24) {\n throw new ValidationError(\n `There cannot be more than 24 hours. Value parsed is \"${value}\".`\n );\n } else if (hours < 0) {\n throw new ValidationError(`Hours cannot go into negative. Value parsed is \"${value}\".`);\n } else if (minutes >= 60) {\n throw new ValidationError(\n `There cannot be more than 59 minutes. Value parsed is \"${value}\".`\n );\n } else if (minutes < 0) {\n throw new ValidationError(`Minutes cannot go into negative. Value parsed is \"${value}\".`);\n } else if (seconds >= 60) {\n throw new ValidationError(\n `There cannot be more than 59 seconds. Value parsed is \"${value}\".`\n );\n } else if (seconds < 0) {\n throw new ValidationError(`Seconds cannot go into negative. Value parsed is \"${value}\".`);\n }\n return {\n hours,\n minutes,\n seconds\n };\n};\n/**\n * returns 1 if time is greater than compareTo\n * returns 0 if they are equal\n * returns -1 if compareTo is greater than time\n */\nexport const compareTime = (time: string, compareTo: string): number => {\n const { hours: timeHours, minutes: timeMinutes, seconds: timeSeconds } = parseTime(time);\n const {\n hours: compareToHours,\n minutes: compareToMinutes,\n seconds: compareToSeconds\n } = parseTime(compareTo);\n if (timeHours > compareToHours) {\n return 1;\n }\n if (timeHours === compareToHours) {\n if (timeMinutes > compareToMinutes) {\n return 1;\n } else if (timeMinutes === compareToMinutes) {\n if (timeSeconds > compareToSeconds) {\n return 1;\n } else if (timeSeconds === compareToSeconds) {\n return 0;\n }\n }\n }\n return -1;\n};\n"],"names":["parseTime","value","parsed","Number","ValidationError","hours","minutes","seconds","compareTime","time","compareTo","timeHours","timeMinutes","timeSeconds","compareToHours","compareToMinutes","compareToSeconds"],"mappings":";AAOA,MAAMA,YAAY,CAACC;IACf,MAAMC,SAASD,MAAM,KAAK,CAAC,KAAK,GAAG,CAACE;IACpC,IAAID,OAAO,MAAM,GAAG,GAChB,MAAM,IAAIE,gBAAgB,CAAC,OAAO,EAAEH,MAAM,0BAA0B,CAAC;IAEzE,MAAM,CAACI,OAAOC,SAASC,UAAU,CAAC,CAAC,GAAGL;IACtC,IAAIG,SAAS,IACT,MAAM,IAAID,gBACN,CAAC,qDAAqD,EAAEH,MAAM,EAAE,CAAC;IAElE,IAAII,QAAQ,GACf,MAAM,IAAID,gBAAgB,CAAC,gDAAgD,EAAEH,MAAM,EAAE,CAAC;IACnF,IAAIK,WAAW,IAClB,MAAM,IAAIF,gBACN,CAAC,uDAAuD,EAAEH,MAAM,EAAE,CAAC;IAEpE,IAAIK,UAAU,GACjB,MAAM,IAAIF,gBAAgB,CAAC,kDAAkD,EAAEH,MAAM,EAAE,CAAC;IACrF,IAAIM,WAAW,IAClB,MAAM,IAAIH,gBACN,CAAC,uDAAuD,EAAEH,MAAM,EAAE,CAAC;SAEpE,IAAIM,UAAU,GACjB,MAAM,IAAIH,gBAAgB,CAAC,kDAAkD,EAAEH,MAAM,EAAE,CAAC;IAE5F,OAAO;QACHI;QACAC;QACAC;IACJ;AACJ;AAMO,MAAMC,cAAc,CAACC,MAAcC;IACtC,MAAM,EAAE,OAAOC,SAAS,EAAE,SAASC,WAAW,EAAE,SAASC,WAAW,EAAE,GAAGb,UAAUS;IACnF,MAAM,EACF,OAAOK,cAAc,EACrB,SAASC,gBAAgB,EACzB,SAASC,gBAAgB,EAC5B,GAAGhB,UAAUU;IACd,IAAIC,YAAYG,gBACZ,OAAO;IAEX,IAAIH,cAAcG,gBACd;QAAA,IAAIF,cAAcG,kBACd,OAAO;aACJ,IAAIH,gBAAgBG,kBACvB;YAAA,IAAIF,cAAcG,kBACd,OAAO;iBACJ,IAAIH,gBAAgBG,kBACvB,OAAO;QACX;IACJ;IAEJ,OAAO;AACX"}
|
package/validators/timeGte.js
CHANGED
|
@@ -1,23 +1,13 @@
|
|
|
1
|
-
import
|
|
1
|
+
import validationError from "../validationError.js";
|
|
2
2
|
import { compareTime } from "./time/index.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
// we need to join because validation params are being split by :
|
|
12
|
-
const gteValue = params.join(":");
|
|
13
|
-
if (!gteValue) {
|
|
14
|
-
return;
|
|
15
|
-
}
|
|
16
|
-
const compare = compareTime(value, gteValue);
|
|
17
|
-
if (compare >= 0) {
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
throw new ValidationError(`Value needs to be greater than or equal to "${gteValue}".`);
|
|
3
|
+
const timeGte = (value, params)=>{
|
|
4
|
+
if (!value || !params) return;
|
|
5
|
+
const gteValue = params.join(":");
|
|
6
|
+
if (!gteValue) return;
|
|
7
|
+
const compare = compareTime(value, gteValue);
|
|
8
|
+
if (compare >= 0) return;
|
|
9
|
+
throw new validationError(`Value needs to be greater than or equal to "${gteValue}".`);
|
|
21
10
|
};
|
|
11
|
+
export default timeGte;
|
|
22
12
|
|
|
23
13
|
//# sourceMappingURL=timeGte.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"validators/timeGte.js","sources":["../../src/validators/timeGte.ts"],"sourcesContent":["import ValidationError from \"~/validationError.js\";\nimport { compareTime } from \"./time/index.js\";\n\n/**\n * Validates that given value is a greater or equal to a gteValue\n */\nexport default (value: string, params?: string[]) => {\n if (!value || !params) {\n return;\n }\n // we need to join because validation params are being split by :\n const gteValue = params.join(\":\");\n if (!gteValue) {\n return;\n }\n\n const compare = compareTime(value, gteValue);\n\n if (compare >= 0) {\n return;\n }\n throw new ValidationError(`Value needs to be greater than or equal to \"${gteValue}\".`);\n};\n"],"names":["value","params","gteValue","compare","compareTime","ValidationError"],"mappings":";;AAMA,gBAAgB,CAAAA,OAAeC;IAC3B,IAAI,CAACD,SAAS,CAACC,QACX;IAGJ,MAAMC,WAAWD,OAAO,IAAI,CAAC;IAC7B,IAAI,CAACC,UACD;IAGJ,MAAMC,UAAUC,YAAYJ,OAAOE;IAEnC,IAAIC,WAAW,GACX;IAEJ,MAAM,IAAIE,gBAAgB,CAAC,4CAA4C,EAAEH,SAAS,EAAE,CAAC;AACzF"}
|
package/validators/timeLte.js
CHANGED
|
@@ -1,23 +1,13 @@
|
|
|
1
|
-
import
|
|
1
|
+
import validationError from "../validationError.js";
|
|
2
2
|
import { compareTime } from "./time/index.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
// we need to join because validation params are being split by :
|
|
12
|
-
const lteValue = params.join(":");
|
|
13
|
-
if (!lteValue) {
|
|
14
|
-
return;
|
|
15
|
-
}
|
|
16
|
-
const compare = compareTime(value, lteValue);
|
|
17
|
-
if (compare <= 0) {
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
throw new ValidationError(`Value needs to be lesser than or equal to "${lteValue}".`);
|
|
3
|
+
const timeLte = (value, params)=>{
|
|
4
|
+
if (!value || !params) return;
|
|
5
|
+
const lteValue = params.join(":");
|
|
6
|
+
if (!lteValue) return;
|
|
7
|
+
const compare = compareTime(value, lteValue);
|
|
8
|
+
if (compare <= 0) return;
|
|
9
|
+
throw new validationError(`Value needs to be lesser than or equal to "${lteValue}".`);
|
|
21
10
|
};
|
|
11
|
+
export default timeLte;
|
|
22
12
|
|
|
23
13
|
//# sourceMappingURL=timeLte.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"validators/timeLte.js","sources":["../../src/validators/timeLte.ts"],"sourcesContent":["import ValidationError from \"~/validationError.js\";\nimport { compareTime } from \"./time/index.js\";\n\n/**\n * Validates that given value is a leaser or equal to a lteValue\n */\nexport default (value: string, params?: string[]) => {\n if (!value || !params) {\n return;\n }\n // we need to join because validation params are being split by :\n const lteValue = params.join(\":\");\n if (!lteValue) {\n return;\n }\n\n const compare = compareTime(value, lteValue);\n if (compare <= 0) {\n return;\n }\n throw new ValidationError(`Value needs to be lesser than or equal to \"${lteValue}\".`);\n};\n"],"names":["value","params","lteValue","compare","compareTime","ValidationError"],"mappings":";;AAMA,gBAAgB,CAAAA,OAAeC;IAC3B,IAAI,CAACD,SAAS,CAACC,QACX;IAGJ,MAAMC,WAAWD,OAAO,IAAI,CAAC;IAC7B,IAAI,CAACC,UACD;IAGJ,MAAMC,UAAUC,YAAYJ,OAAOE;IACnC,IAAIC,WAAW,GACX;IAEJ,MAAM,IAAIE,gBAAgB,CAAC,2CAA2C,EAAEH,SAAS,EAAE,CAAC;AACxF"}
|
package/validators/url.js
CHANGED
|
@@ -1,37 +1,26 @@
|
|
|
1
|
-
import
|
|
1
|
+
import validationError from "../validationError.js";
|
|
2
2
|
const regex = {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
base: new RegExp(/^(https?:\/\/)((([a-z\d]([a-z\d-]*[a-z\d])*)\.)+[a-z]{2,}|((\d{1,3}\.){3}\d{1,3}))(:\d+)?(\/[-a-z\d%_.~+]*)*(\?[;&a-z\d%_.~+=!-]*)?(#[-a-z\d_]*)?$/i),
|
|
4
|
+
ip: new RegExp(/^(https?:\/\/)(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/),
|
|
5
|
+
relative: new RegExp(/^\/.*$/),
|
|
6
|
+
href: new RegExp(/^(#|mailto:|tel:)\S*$/)
|
|
7
7
|
};
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
if (regex.base.test(value)) {
|
|
17
|
-
if (!params.includes("noIp")) {
|
|
18
|
-
return;
|
|
8
|
+
const url = (value, params)=>{
|
|
9
|
+
if (!value || !params) return;
|
|
10
|
+
value += "";
|
|
11
|
+
if (value.startsWith("http://localhost") || value.startsWith("https://localhost")) value = value.replace("//localhost", "//localhost.com");
|
|
12
|
+
if (regex.base.test(value)) {
|
|
13
|
+
if (!params.includes("noIp")) return;
|
|
14
|
+
if (!regex.ip.test(value)) return;
|
|
19
15
|
}
|
|
20
|
-
if (
|
|
21
|
-
|
|
16
|
+
if (params.includes("allowRelative")) {
|
|
17
|
+
if (regex.relative.test(value)) return;
|
|
22
18
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
if (regex.relative.test(value)) {
|
|
26
|
-
return;
|
|
19
|
+
if (params.includes("allowHref")) {
|
|
20
|
+
if (regex.href.test(value)) return;
|
|
27
21
|
}
|
|
28
|
-
|
|
29
|
-
if (params.includes("allowHref")) {
|
|
30
|
-
if (regex.href.test(value)) {
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
throw new ValidationError("Value must be a valid URL.");
|
|
22
|
+
throw new validationError("Value must be a valid URL.");
|
|
35
23
|
};
|
|
24
|
+
export default url;
|
|
36
25
|
|
|
37
26
|
//# sourceMappingURL=url.js.map
|
package/validators/url.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"validators/url.js","sources":["../../src/validators/url.ts"],"sourcesContent":["import ValidationError from \"~/validationError.js\";\n\nconst regex = {\n base: new RegExp(\n /^(https?:\\/\\/)((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|((\\d{1,3}\\.){3}\\d{1,3}))(:\\d+)?(\\/[-a-z\\d%_.~+]*)*(\\?[;&a-z\\d%_.~+=!-]*)?(#[-a-z\\d_]*)?$/i\n ),\n ip: new RegExp(\n /^(https?:\\/\\/)(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/\n ),\n relative: new RegExp(/^\\/.*$/),\n href: new RegExp(/^(#|mailto:|tel:)\\S*$/)\n};\n\nexport default (value: any, params?: string[]) => {\n if (!value || !params) {\n return;\n }\n value = value + \"\";\n\n if (value.startsWith(\"http://localhost\") || value.startsWith(\"https://localhost\")) {\n value = value.replace(\"//localhost\", \"//localhost.com\");\n }\n\n if (regex.base.test(value)) {\n if (!params.includes(\"noIp\")) {\n return;\n }\n\n if (!regex.ip.test(value)) {\n return;\n }\n }\n\n if (params.includes(\"allowRelative\")) {\n if (regex.relative.test(value)) {\n return;\n }\n }\n\n if (params.includes(\"allowHref\")) {\n if (regex.href.test(value)) {\n return;\n }\n }\n\n throw new ValidationError(\"Value must be a valid URL.\");\n};\n"],"names":["regex","RegExp","value","params","ValidationError"],"mappings":";AAEA,MAAMA,QAAQ;IACV,MAAM,IAAIC,OACN;IAEJ,IAAI,IAAIA,OACJ;IAEJ,UAAU,IAAIA,OAAO;IACrB,MAAM,IAAIA,OAAO;AACrB;AAEA,YAAgB,CAAAC,OAAYC;IACxB,IAAI,CAACD,SAAS,CAACC,QACX;IAEJD,SAAgB;IAEhB,IAAIA,MAAM,UAAU,CAAC,uBAAuBA,MAAM,UAAU,CAAC,sBACzDA,QAAQA,MAAM,OAAO,CAAC,eAAe;IAGzC,IAAIF,MAAM,IAAI,CAAC,IAAI,CAACE,QAAQ;QACxB,IAAI,CAACC,OAAO,QAAQ,CAAC,SACjB;QAGJ,IAAI,CAACH,MAAM,EAAE,CAAC,IAAI,CAACE,QACf;IAER;IAEA,IAAIC,OAAO,QAAQ,CAAC,kBAChB;QAAA,IAAIH,MAAM,QAAQ,CAAC,IAAI,CAACE,QACpB;IACJ;IAGJ,IAAIC,OAAO,QAAQ,CAAC,cAChB;QAAA,IAAIH,MAAM,IAAI,CAAC,IAAI,CAACE,QAChB;IACJ;IAGJ,MAAM,IAAIE,gBAAgB;AAC9B"}
|
package/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type ValidationError from \"~/validationError.js\";\n\ntype ValidatorResult = boolean | ValidationError | void | Promise<boolean | ValidationError | void>;\n/**\n * @typedef Validator\n * @name Validator\n * @description This type defines the validator function.\n * @param {any} value This is the value being validated.\n * @param {Array<string>} parameters (Optional) This represents an array validator parameters.\n * @throws {ValidationError}\n */\nexport interface Validator {\n (value: any, params?: string[]): ValidatorResult;\n validatorName?: string;\n}\n\n/**\n * @typedef ValidateOptions\n * @name ValidateOptions\n * @description This is an object containing validation options.\n * @property {boolean} throw Should validation throw on failure? Default: true.\n */\nexport interface ValidateOptions {\n throw?: boolean;\n}\n\n/**\n * @private\n * @typedef ParsedValidators\n * @name ParsedValidators\n * @description An object containing validators with parameters: `{ [string]: Array<string> }`.\n */\nexport interface ParsedValidators {\n [key: string]: Array<string>;\n}\n"],"mappings":"","ignoreList":[]}
|