@webiny/validation 5.15.0-beta.0

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 (84) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +409 -0
  3. package/index.d.ts +4 -0
  4. package/index.js +94 -0
  5. package/index.js.map +1 -0
  6. package/package.json +43 -0
  7. package/types.d.ts +27 -0
  8. package/types.js +6 -0
  9. package/types.js.map +1 -0
  10. package/validation.d.ts +62 -0
  11. package/validation.js +195 -0
  12. package/validation.js.map +1 -0
  13. package/validationError.d.ts +10 -0
  14. package/validationError.js +30 -0
  15. package/validationError.js.map +1 -0
  16. package/validators/creditCard.d.ts +15 -0
  17. package/validators/creditCard.js +70 -0
  18. package/validators/creditCard.js.map +1 -0
  19. package/validators/dateGte.d.ts +5 -0
  20. package/validators/dateGte.js +38 -0
  21. package/validators/dateGte.js.map +1 -0
  22. package/validators/dateLte.d.ts +5 -0
  23. package/validators/dateLte.js +38 -0
  24. package/validators/dateLte.js.map +1 -0
  25. package/validators/email.d.ts +15 -0
  26. package/validators/email.js +42 -0
  27. package/validators/email.js.map +1 -0
  28. package/validators/eq.d.ts +16 -0
  29. package/validators/eq.js +42 -0
  30. package/validators/eq.js.map +1 -0
  31. package/validators/gt.d.ts +16 -0
  32. package/validators/gt.js +39 -0
  33. package/validators/gt.js.map +1 -0
  34. package/validators/gte.d.ts +16 -0
  35. package/validators/gte.js +39 -0
  36. package/validators/gte.js.map +1 -0
  37. package/validators/in.d.ts +2 -0
  38. package/validators/in.js +28 -0
  39. package/validators/in.js.map +1 -0
  40. package/validators/integer.d.ts +2 -0
  41. package/validators/integer.js +27 -0
  42. package/validators/integer.js.map +1 -0
  43. package/validators/json.d.ts +2 -0
  44. package/validators/json.js +25 -0
  45. package/validators/json.js.map +1 -0
  46. package/validators/lt.d.ts +2 -0
  47. package/validators/lt.js +27 -0
  48. package/validators/lt.js.map +1 -0
  49. package/validators/lte.d.ts +2 -0
  50. package/validators/lte.js +27 -0
  51. package/validators/lte.js.map +1 -0
  52. package/validators/maxLength.d.ts +2 -0
  53. package/validators/maxLength.js +45 -0
  54. package/validators/maxLength.js.map +1 -0
  55. package/validators/minLength.d.ts +2 -0
  56. package/validators/minLength.js +45 -0
  57. package/validators/minLength.js.map +1 -0
  58. package/validators/number.d.ts +8 -0
  59. package/validators/number.js +35 -0
  60. package/validators/number.js.map +1 -0
  61. package/validators/numeric.d.ts +8 -0
  62. package/validators/numeric.js +38 -0
  63. package/validators/numeric.js.map +1 -0
  64. package/validators/password.d.ts +2 -0
  65. package/validators/password.js +27 -0
  66. package/validators/password.js.map +1 -0
  67. package/validators/phone.d.ts +2 -0
  68. package/validators/phone.js +27 -0
  69. package/validators/phone.js.map +1 -0
  70. package/validators/required.d.ts +2 -0
  71. package/validators/required.js +23 -0
  72. package/validators/required.js.map +1 -0
  73. package/validators/time/index.d.ts +6 -0
  74. package/validators/time/index.js +80 -0
  75. package/validators/time/index.js.map +1 -0
  76. package/validators/timeGte.d.ts +5 -0
  77. package/validators/timeGte.js +39 -0
  78. package/validators/timeGte.js.map +1 -0
  79. package/validators/timeLte.d.ts +5 -0
  80. package/validators/timeLte.js +39 -0
  81. package/validators/timeLte.js.map +1 -0
  82. package/validators/url.d.ts +2 -0
  83. package/validators/url.js +60 -0
  84. package/validators/url.js.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/validators/time/index.ts"],"names":["parseTime","value","parsed","split","map","Number","length","ValidationError","hours","minutes","seconds","compareTime","time","compareTo","timeHours","timeMinutes","timeSeconds","compareToHours","compareToMinutes","compareToSeconds"],"mappings":";;;;;;;;;AAAA;;AAEA,MAAMA,SAAS,GAAIC,KAAD,IAAmB;AACjC,QAAMC,MAAM,GAAGD,KAAK,CAACE,KAAN,CAAY,GAAZ,EAAiBC,GAAjB,CAAqBC,MAArB,CAAf;;AACA,MAAIH,MAAM,CAACI,MAAP,GAAgB,CAApB,EAAuB;AACnB,UAAM,IAAIC,wBAAJ,CAAqB,UAASN,KAAM,4BAApC,CAAN;AACH;;AACD,QAAM,CAACO,KAAD,EAAQC,OAAR,EAAiBC,OAAO,GAAG,CAA3B,IAAgCR,MAAtC;;AACA,MAAIM,KAAK,IAAI,EAAb,EAAiB;AACb,UAAM,IAAID,wBAAJ,CACD,wDAAuDN,KAAM,IAD5D,CAAN;AAGH,GAJD,MAIO,IAAIO,KAAK,GAAG,CAAZ,EAAe;AAClB,UAAM,IAAID,wBAAJ,CAAqB,mDAAkDN,KAAM,IAA7E,CAAN;AACH,GAFM,MAEA,IAAIQ,OAAO,IAAI,EAAf,EAAmB;AACtB,UAAM,IAAIF,wBAAJ,CACD,0DAAyDN,KAAM,IAD9D,CAAN;AAGH,GAJM,MAIA,IAAIQ,OAAO,GAAG,CAAd,EAAiB;AACpB,UAAM,IAAIF,wBAAJ,CAAqB,qDAAoDN,KAAM,IAA/E,CAAN;AACH,GAFM,MAEA,IAAIS,OAAO,IAAI,EAAf,EAAmB;AACtB,UAAM,IAAIH,wBAAJ,CACD,0DAAyDN,KAAM,IAD9D,CAAN;AAGH,GAJM,MAIA,IAAIS,OAAO,GAAG,CAAd,EAAiB;AACpB,UAAM,IAAIH,wBAAJ,CAAqB,qDAAoDN,KAAM,IAA/E,CAAN;AACH;;AACD,SAAO;AACHO,IAAAA,KADG;AAEHC,IAAAA,OAFG;AAGHC,IAAAA;AAHG,GAAP;AAKH,CA9BD;AA+BA;AACA;AACA;AACA;AACA;;;AACO,MAAMC,WAAW,GAAG,CAACC,IAAD,EAAeC,SAAf,KAA6C;AACpE,QAAM;AAAEL,IAAAA,KAAK,EAAEM,SAAT;AAAoBL,IAAAA,OAAO,EAAEM,WAA7B;AAA0CL,IAAAA,OAAO,EAAEM;AAAnD,MAAmEhB,SAAS,CAACY,IAAD,CAAlF;AACA,QAAM;AACFJ,IAAAA,KAAK,EAAES,cADL;AAEFR,IAAAA,OAAO,EAAES,gBAFP;AAGFR,IAAAA,OAAO,EAAES;AAHP,MAIFnB,SAAS,CAACa,SAAD,CAJb;;AAKA,MAAIC,SAAS,GAAGG,cAAhB,EAAgC;AAC5B,WAAO,CAAP;AACH;;AACD,MAAIH,SAAS,KAAKG,cAAlB,EAAkC;AAC9B,QAAIF,WAAW,GAAGG,gBAAlB,EAAoC;AAChC,aAAO,CAAP;AACH,KAFD,MAEO,IAAIH,WAAW,KAAKG,gBAApB,EAAsC;AACzC,UAAIF,WAAW,GAAGG,gBAAlB,EAAoC;AAChC,eAAO,CAAP;AACH,OAFD,MAEO,IAAIH,WAAW,KAAKG,gBAApB,EAAsC;AACzC,eAAO,CAAP;AACH;AACJ;AACJ;;AACD,SAAO,CAAC,CAAR;AACH,CAtBM","sourcesContent":["import ValidationError from \"../../validationError\";\n\nconst parseTime = (value: string) => {\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"],"file":"index.js"}
@@ -0,0 +1,5 @@
1
+ declare const _default: (value: string, params: string[]) => void;
2
+ /**
3
+ * Validates that given value is a greater or equal to a gteValue
4
+ */
5
+ export default _default;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _validationError = _interopRequireDefault(require("./../validationError"));
11
+
12
+ var _time = require("./time");
13
+
14
+ /**
15
+ * Validates that given value is a greater or equal to a gteValue
16
+ */
17
+ var _default = (value, params) => {
18
+ if (!value) {
19
+ return;
20
+ } // we need to join because validation params are being split by :
21
+
22
+
23
+ const gteValue = params.join(":");
24
+
25
+ if (!gteValue) {
26
+ return;
27
+ }
28
+
29
+ const compare = (0, _time.compareTime)(value, gteValue);
30
+
31
+ if (compare >= 0) {
32
+ return;
33
+ }
34
+
35
+ throw new _validationError.default(`Value needs to be greater than or equal to "${gteValue}".`);
36
+ };
37
+
38
+ exports.default = _default;
39
+ //# sourceMappingURL=timeGte.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/validators/timeGte.ts"],"names":["value","params","gteValue","join","compare","ValidationError"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA;AACA;AACA;eACe,CAACA,KAAD,EAAgBC,MAAhB,KAAqC;AAChD,MAAI,CAACD,KAAL,EAAY;AACR;AACH,GAH+C,CAIhD;;;AACA,QAAME,QAAQ,GAAGD,MAAM,CAACE,IAAP,CAAY,GAAZ,CAAjB;;AACA,MAAI,CAACD,QAAL,EAAe;AACX;AACH;;AAED,QAAME,OAAO,GAAG,uBAAYJ,KAAZ,EAAmBE,QAAnB,CAAhB;;AAEA,MAAIE,OAAO,IAAI,CAAf,EAAkB;AACd;AACH;;AACD,QAAM,IAAIC,wBAAJ,CAAqB,+CAA8CH,QAAS,IAA5E,CAAN;AACH,C","sourcesContent":["import ValidationError from \"./../validationError\";\nimport { compareTime } from \"./time\";\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) {\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"],"file":"timeGte.js"}
@@ -0,0 +1,5 @@
1
+ declare const _default: (value: string, params: string[]) => void;
2
+ /**
3
+ * Validates that given value is a leaser or equal to a lteValue
4
+ */
5
+ export default _default;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _validationError = _interopRequireDefault(require("./../validationError"));
11
+
12
+ var _time = require("./time");
13
+
14
+ /**
15
+ * Validates that given value is a leaser or equal to a lteValue
16
+ */
17
+ var _default = (value, params) => {
18
+ if (!value) {
19
+ return;
20
+ } // we need to join because validation params are being split by :
21
+
22
+
23
+ const lteValue = params.join(":");
24
+
25
+ if (!lteValue) {
26
+ return;
27
+ }
28
+
29
+ const compare = (0, _time.compareTime)(value, lteValue);
30
+
31
+ if (compare <= 0) {
32
+ return;
33
+ }
34
+
35
+ throw new _validationError.default(`Value needs to be lesser than or equal to "${lteValue}".`);
36
+ };
37
+
38
+ exports.default = _default;
39
+ //# sourceMappingURL=timeLte.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/validators/timeLte.ts"],"names":["value","params","lteValue","join","compare","ValidationError"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA;AACA;AACA;eACe,CAACA,KAAD,EAAgBC,MAAhB,KAAqC;AAChD,MAAI,CAACD,KAAL,EAAY;AACR;AACH,GAH+C,CAIhD;;;AACA,QAAME,QAAQ,GAAGD,MAAM,CAACE,IAAP,CAAY,GAAZ,CAAjB;;AACA,MAAI,CAACD,QAAL,EAAe;AACX;AACH;;AAED,QAAME,OAAO,GAAG,uBAAYJ,KAAZ,EAAmBE,QAAnB,CAAhB;;AACA,MAAIE,OAAO,IAAI,CAAf,EAAkB;AACd;AACH;;AACD,QAAM,IAAIC,wBAAJ,CAAqB,8CAA6CH,QAAS,IAA3E,CAAN;AACH,C","sourcesContent":["import ValidationError from \"./../validationError\";\nimport { compareTime } from \"./time\";\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) {\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"],"file":"timeLte.js"}
@@ -0,0 +1,2 @@
1
+ declare const _default: (value: any, params: Array<string>) => void;
2
+ export default _default;
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _validationError = _interopRequireDefault(require("./../validationError"));
11
+
12
+ const regex = {
13
+ base: new RegExp( // eslint-disable-next-line
14
+ /^(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),
15
+ ip: new RegExp( // eslint-disable-next-line
16
+ /^(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]?)$/),
17
+ relative: new RegExp( // eslint-disable-next-line
18
+ /^\/.*$/),
19
+ href: new RegExp( // eslint-disable-next-line
20
+ /^(#|mailto:|tel:)\S*$/)
21
+ };
22
+
23
+ var _default = (value, params) => {
24
+ if (!value) {
25
+ return;
26
+ }
27
+
28
+ value = value + "";
29
+
30
+ if (value.startsWith("http://localhost") || value.startsWith("https://localhost")) {
31
+ value = value.replace("//localhost", "//localhost.com");
32
+ }
33
+
34
+ if (regex.base.test(value)) {
35
+ if (!params.includes("noIp")) {
36
+ return;
37
+ }
38
+
39
+ if (!regex.ip.test(value)) {
40
+ return;
41
+ }
42
+ }
43
+
44
+ if (params.includes("allowRelative")) {
45
+ if (regex.relative.test(value)) {
46
+ return;
47
+ }
48
+ }
49
+
50
+ if (params.includes("allowHref")) {
51
+ if (regex.href.test(value)) {
52
+ return;
53
+ }
54
+ }
55
+
56
+ throw new _validationError.default("Value must be a valid URL.");
57
+ };
58
+
59
+ exports.default = _default;
60
+ //# sourceMappingURL=url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/validators/url.ts"],"names":["regex","base","RegExp","ip","relative","href","value","params","startsWith","replace","test","includes","ValidationError"],"mappings":";;;;;;;;;AAAA;;AAEA,MAAMA,KAAK,GAAG;AACVC,EAAAA,IAAI,EAAE,IAAIC,MAAJ,EACF;AACA,wJAFE,CADI;AAKVC,EAAAA,EAAE,EAAE,IAAID,MAAJ,EACA;AACA,iLAFA,CALM;AASVE,EAAAA,QAAQ,EAAE,IAAIF,MAAJ,EACN;AACA,UAFM,CATA;AAaVG,EAAAA,IAAI,EAAE,IAAIH,MAAJ,EACF;AACA,yBAFE;AAbI,CAAd;;eAmBe,CAACI,KAAD,EAAaC,MAAb,KAAuC;AAClD,MAAI,CAACD,KAAL,EAAY;AACR;AACH;;AACDA,EAAAA,KAAK,GAAGA,KAAK,GAAG,EAAhB;;AAEA,MAAIA,KAAK,CAACE,UAAN,CAAiB,kBAAjB,KAAwCF,KAAK,CAACE,UAAN,CAAiB,mBAAjB,CAA5C,EAAmF;AAC/EF,IAAAA,KAAK,GAAGA,KAAK,CAACG,OAAN,CAAc,aAAd,EAA6B,iBAA7B,CAAR;AACH;;AAED,MAAIT,KAAK,CAACC,IAAN,CAAWS,IAAX,CAAgBJ,KAAhB,CAAJ,EAA4B;AACxB,QAAI,CAACC,MAAM,CAACI,QAAP,CAAgB,MAAhB,CAAL,EAA8B;AAC1B;AACH;;AAED,QAAI,CAACX,KAAK,CAACG,EAAN,CAASO,IAAT,CAAcJ,KAAd,CAAL,EAA2B;AACvB;AACH;AACJ;;AAED,MAAIC,MAAM,CAACI,QAAP,CAAgB,eAAhB,CAAJ,EAAsC;AAClC,QAAIX,KAAK,CAACI,QAAN,CAAeM,IAAf,CAAoBJ,KAApB,CAAJ,EAAgC;AAC5B;AACH;AACJ;;AAED,MAAIC,MAAM,CAACI,QAAP,CAAgB,WAAhB,CAAJ,EAAkC;AAC9B,QAAIX,KAAK,CAACK,IAAN,CAAWK,IAAX,CAAgBJ,KAAhB,CAAJ,EAA4B;AACxB;AACH;AACJ;;AAED,QAAM,IAAIM,wBAAJ,CAAoB,4BAApB,CAAN;AACH,C","sourcesContent":["import ValidationError from \"./../validationError\";\n\nconst regex = {\n base: new RegExp(\n // eslint-disable-next-line\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 // eslint-disable-next-line\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 // eslint-disable-next-line\n /^\\/.*$/\n ),\n href: new RegExp(\n // eslint-disable-next-line\n /^(#|mailto:|tel:)\\S*$/\n )\n};\n\nexport default (value: any, params: Array<string>) => {\n if (!value) {\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"],"file":"url.js"}