@bigbinary/neeto-commons-frontend 3.1.17 → 3.1.18

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.
@@ -95,6 +95,13 @@
95
95
  },
96
96
  "notice": {
97
97
  "errorOccurred": "Some error occurred."
98
+ },
99
+ "validators": {
100
+ "isRequired": "{{what}} is required.",
101
+ "mustNotContainCapitalLetters": "{{what}} must not contain capital letters.",
102
+ "mustNotContainSpaces": "{{what}} must not contain spaces.",
103
+ "mustNotContainSpecialCharactersExceptHyphen": "{{what}} must not contain any special characters, except '-'",
104
+ "mustNotStartOrEndWithSpecialCharacters": "{{what}} must not start or end with special characters."
98
105
  }
99
106
  }
100
107
  }
@@ -69,4 +69,15 @@ Object.keys(_currencyFormat).forEach(function (key) {
69
69
  }
70
70
  });
71
71
  });
72
+ var _validators = require("./validators");
73
+ Object.keys(_validators).forEach(function (key) {
74
+ if (key === "default" || key === "__esModule") return;
75
+ if (key in exports && exports[key] === _validators[key]) return;
76
+ Object.defineProperty(exports, key, {
77
+ enumerable: true,
78
+ get: function get() {
79
+ return _validators[key];
80
+ }
81
+ });
82
+ });
72
83
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_axios","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_general","_datetime","_permissions","_createSubscription","_currencyFormat"],"sources":["../../../src/utils/index.js"],"sourcesContent":["export * from \"./axios\";\nexport * from \"./general\";\nexport * from \"./datetime\";\nexport * from \"./permissions\";\nexport * from \"./createSubscription\";\nexport * from \"./currencyFormat\";\n"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,MAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,MAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAT,MAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,QAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,QAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,QAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAC,QAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,SAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,SAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,SAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAE,SAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,YAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,YAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,YAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAG,YAAA,CAAAP,GAAA;IAAA;EAAA;AAAA;AACA,IAAAQ,mBAAA,GAAAZ,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAU,mBAAA,EAAAT,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAQ,mBAAA,CAAAR,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAI,mBAAA,CAAAR,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,eAAA,GAAAb,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAW,eAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAS,eAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAK,eAAA,CAAAT,GAAA;IAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"index.js","names":["_axios","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_general","_datetime","_permissions","_createSubscription","_currencyFormat","_validators"],"sources":["../../../src/utils/index.js"],"sourcesContent":["export * from \"./axios\";\nexport * from \"./general\";\nexport * from \"./datetime\";\nexport * from \"./permissions\";\nexport * from \"./createSubscription\";\nexport * from \"./currencyFormat\";\nexport * from \"./validators\";\n"],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _slug = require("./slug");
7
+ Object.keys(_slug).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _slug[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function get() {
13
+ return _slug[key];
14
+ }
15
+ });
16
+ });
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_slug","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["../../../../src/utils/validators/index.js"],"sourcesContent":["export * from \"./slug\";\n"],"mappings":";;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,KAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,KAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAT,KAAA,CAAAK,GAAA;IAAA;EAAA;AAAA"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.slugValidator = void 0;
8
+ var _regex = require("../../constants/regex");
9
+ var _i18next = require("i18next");
10
+ var yup = _interopRequireWildcard(require("yup"));
11
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
12
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
13
+ var slugValidator = function slugValidator(label) {
14
+ return yup.string().test({
15
+ name: "slug",
16
+ test: function test(value, ctx) {
17
+ if (!value) {
18
+ return ctx.createError({
19
+ message: (0, _i18next.t)("neetoCommons.validators.isRequired", {
20
+ what: label
21
+ })
22
+ });
23
+ }
24
+ if (_regex.VALID_SLUG_REGEX.test(value)) return true;
25
+ if (/[A-Z]/.test(value)) {
26
+ return ctx.createError({
27
+ message: (0, _i18next.t)("neetoCommons.validators.mustNotContainCapitalLetters", {
28
+ what: label
29
+ })
30
+ });
31
+ }
32
+ if (value !== null && value !== void 0 && value.includes(" ")) {
33
+ return ctx.createError({
34
+ message: (0, _i18next.t)("neetoCommons.validators.mustNotContainSpaces", {
35
+ what: label
36
+ })
37
+ });
38
+ }
39
+ if (!/^[a-z0-9-]+$/.test(value)) {
40
+ return ctx.createError({
41
+ message: (0, _i18next.t)("neetoCommons.validators.mustNotContainSpecialCharactersExceptHyphen", {
42
+ what: label
43
+ })
44
+ });
45
+ }
46
+ if (/^[-]|[-]$/.test(value)) {
47
+ return ctx.createError({
48
+ message: (0, _i18next.t)("neetoCommons.validators.mustNotStartOrEndWithSpecialCharacters", {
49
+ what: label
50
+ })
51
+ });
52
+ }
53
+ return true;
54
+ }
55
+ });
56
+ };
57
+ exports.slugValidator = slugValidator;
58
+ //# sourceMappingURL=slug.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slug.js","names":["_regex","require","_i18next","yup","_interopRequireWildcard","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","slugValidator","label","string","test","name","value","ctx","createError","message","t","what","VALID_SLUG_REGEX","includes","exports"],"sources":["../../../../src/utils/validators/slug.js"],"sourcesContent":["import { VALID_SLUG_REGEX } from \"constants/regex\";\n\nimport { t } from \"i18next\";\nimport * as yup from \"yup\";\n\nexport const slugValidator = label =>\n yup.string().test({\n name: \"slug\",\n test: (value, ctx) => {\n if (!value) {\n return ctx.createError({\n message: t(\"neetoCommons.validators.isRequired\", { what: label }),\n });\n }\n\n if (VALID_SLUG_REGEX.test(value)) return true;\n\n if (/[A-Z]/.test(value)) {\n return ctx.createError({\n message: t(\"neetoCommons.validators.mustNotContainCapitalLetters\", {\n what: label,\n }),\n });\n }\n\n if (value?.includes(\" \")) {\n return ctx.createError({\n message: t(\"neetoCommons.validators.mustNotContainSpaces\", {\n what: label,\n }),\n });\n }\n\n if (!/^[a-z0-9-]+$/.test(value)) {\n return ctx.createError({\n message: t(\n \"neetoCommons.validators.mustNotContainSpecialCharactersExceptHyphen\",\n { what: label }\n ),\n });\n }\n\n if (/^[-]|[-]$/.test(value)) {\n return ctx.createError({\n message: t(\n \"neetoCommons.validators.mustNotStartOrEndWithSpecialCharacters\",\n { what: label }\n ),\n });\n }\n\n return true;\n },\n });\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-commons-frontend",
3
- "version": "3.1.17",
3
+ "version": "3.1.18",
4
4
  "description": "A package encapsulating common code across neeto projects including initializers, utility functions, common components and hooks and so on.",
5
5
  "repository": "git@github.com:bigbinary/neeto-commons-frontend.git",
6
6
  "author": "Amaljith K <amaljith.k@bigbinary.com>",
@@ -93,6 +93,7 @@
93
93
  "react-toastify": "8.0.2",
94
94
  "shakapacker": "^6.5.5",
95
95
  "tailwindcss": "^3.4.1",
96
- "webpack": "^5.75.0"
96
+ "webpack": "^5.75.0",
97
+ "yup": "^1.3.3"
97
98
  }
98
99
  }
@@ -95,6 +95,13 @@
95
95
  },
96
96
  "notice": {
97
97
  "errorOccurred": "Some error occurred."
98
+ },
99
+ "validators": {
100
+ "isRequired": "{{what}} is required.",
101
+ "mustNotContainCapitalLetters": "{{what}} must not contain capital letters.",
102
+ "mustNotContainSpaces": "{{what}} must not contain spaces.",
103
+ "mustNotContainSpecialCharactersExceptHyphen": "{{what}} must not contain any special characters, except '-'",
104
+ "mustNotStartOrEndWithSpecialCharacters": "{{what}} must not start or end with special characters."
98
105
  }
99
106
  }
100
107
  }
package/utils/index.js CHANGED
@@ -4,4 +4,5 @@ export * from "./datetime";
4
4
  export * from "./permissions";
5
5
  export * from "./createSubscription";
6
6
  export * from "./currencyFormat";
7
+ export * from "./validators";
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/utils/index.js"],"sourcesContent":["export * from \"./axios\";\nexport * from \"./general\";\nexport * from \"./datetime\";\nexport * from \"./permissions\";\nexport * from \"./createSubscription\";\nexport * from \"./currencyFormat\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/utils/index.js"],"sourcesContent":["export * from \"./axios\";\nexport * from \"./general\";\nexport * from \"./datetime\";\nexport * from \"./permissions\";\nexport * from \"./createSubscription\";\nexport * from \"./currencyFormat\";\nexport * from \"./validators\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA"}
@@ -0,0 +1 @@
1
+ export * from "./slug";
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/utils/validators/index.js"],"sourcesContent":["export * from \"./slug\";\n"],"mappings":"AAAA"}
@@ -0,0 +1,48 @@
1
+ import { VALID_SLUG_REGEX } from "../../constants/regex";
2
+ import { t } from "i18next";
3
+ import * as yup from "yup";
4
+ export var slugValidator = function slugValidator(label) {
5
+ return yup.string().test({
6
+ name: "slug",
7
+ test: function test(value, ctx) {
8
+ if (!value) {
9
+ return ctx.createError({
10
+ message: t("neetoCommons.validators.isRequired", {
11
+ what: label
12
+ })
13
+ });
14
+ }
15
+ if (VALID_SLUG_REGEX.test(value)) return true;
16
+ if (/[A-Z]/.test(value)) {
17
+ return ctx.createError({
18
+ message: t("neetoCommons.validators.mustNotContainCapitalLetters", {
19
+ what: label
20
+ })
21
+ });
22
+ }
23
+ if (value !== null && value !== void 0 && value.includes(" ")) {
24
+ return ctx.createError({
25
+ message: t("neetoCommons.validators.mustNotContainSpaces", {
26
+ what: label
27
+ })
28
+ });
29
+ }
30
+ if (!/^[a-z0-9-]+$/.test(value)) {
31
+ return ctx.createError({
32
+ message: t("neetoCommons.validators.mustNotContainSpecialCharactersExceptHyphen", {
33
+ what: label
34
+ })
35
+ });
36
+ }
37
+ if (/^[-]|[-]$/.test(value)) {
38
+ return ctx.createError({
39
+ message: t("neetoCommons.validators.mustNotStartOrEndWithSpecialCharacters", {
40
+ what: label
41
+ })
42
+ });
43
+ }
44
+ return true;
45
+ }
46
+ });
47
+ };
48
+ //# sourceMappingURL=slug.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slug.js","names":["VALID_SLUG_REGEX","t","yup","slugValidator","label","string","test","name","value","ctx","createError","message","what","includes"],"sources":["../../../src/utils/validators/slug.js"],"sourcesContent":["import { VALID_SLUG_REGEX } from \"constants/regex\";\n\nimport { t } from \"i18next\";\nimport * as yup from \"yup\";\n\nexport const slugValidator = label =>\n yup.string().test({\n name: \"slug\",\n test: (value, ctx) => {\n if (!value) {\n return ctx.createError({\n message: t(\"neetoCommons.validators.isRequired\", { what: label }),\n });\n }\n\n if (VALID_SLUG_REGEX.test(value)) return true;\n\n if (/[A-Z]/.test(value)) {\n return ctx.createError({\n message: t(\"neetoCommons.validators.mustNotContainCapitalLetters\", {\n what: label,\n }),\n });\n }\n\n if (value?.includes(\" \")) {\n return ctx.createError({\n message: t(\"neetoCommons.validators.mustNotContainSpaces\", {\n what: label,\n }),\n });\n }\n\n if (!/^[a-z0-9-]+$/.test(value)) {\n return ctx.createError({\n message: t(\n \"neetoCommons.validators.mustNotContainSpecialCharactersExceptHyphen\",\n { what: label }\n ),\n });\n }\n\n if (/^[-]|[-]$/.test(value)) {\n return ctx.createError({\n message: t(\n \"neetoCommons.validators.mustNotStartOrEndWithSpecialCharacters\",\n { what: label }\n ),\n });\n }\n\n return true;\n },\n });\n"],"mappings":"AAAA,SAASA,gBAAgB;AAEzB,SAASC,CAAC,QAAQ,SAAS;AAC3B,OAAO,KAAKC,GAAG,MAAM,KAAK;AAE1B,OAAO,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAGC,KAAK;EAAA,OAChCF,GAAG,CAACG,MAAM,EAAE,CAACC,IAAI,CAAC;IAChBC,IAAI,EAAE,MAAM;IACZD,IAAI,EAAE,SAAAA,KAACE,KAAK,EAAEC,GAAG,EAAK;MACpB,IAAI,CAACD,KAAK,EAAE;QACV,OAAOC,GAAG,CAACC,WAAW,CAAC;UACrBC,OAAO,EAAEV,CAAC,CAAC,oCAAoC,EAAE;YAAEW,IAAI,EAAER;UAAM,CAAC;QAClE,CAAC,CAAC;MACJ;MAEA,IAAIJ,gBAAgB,CAACM,IAAI,CAACE,KAAK,CAAC,EAAE,OAAO,IAAI;MAE7C,IAAI,OAAO,CAACF,IAAI,CAACE,KAAK,CAAC,EAAE;QACvB,OAAOC,GAAG,CAACC,WAAW,CAAC;UACrBC,OAAO,EAAEV,CAAC,CAAC,sDAAsD,EAAE;YACjEW,IAAI,EAAER;UACR,CAAC;QACH,CAAC,CAAC;MACJ;MAEA,IAAII,KAAK,aAALA,KAAK,eAALA,KAAK,CAAEK,QAAQ,CAAC,GAAG,CAAC,EAAE;QACxB,OAAOJ,GAAG,CAACC,WAAW,CAAC;UACrBC,OAAO,EAAEV,CAAC,CAAC,8CAA8C,EAAE;YACzDW,IAAI,EAAER;UACR,CAAC;QACH,CAAC,CAAC;MACJ;MAEA,IAAI,CAAC,cAAc,CAACE,IAAI,CAACE,KAAK,CAAC,EAAE;QAC/B,OAAOC,GAAG,CAACC,WAAW,CAAC;UACrBC,OAAO,EAAEV,CAAC,CACR,qEAAqE,EACrE;YAAEW,IAAI,EAAER;UAAM,CAAC;QAEnB,CAAC,CAAC;MACJ;MAEA,IAAI,WAAW,CAACE,IAAI,CAACE,KAAK,CAAC,EAAE;QAC3B,OAAOC,GAAG,CAACC,WAAW,CAAC;UACrBC,OAAO,EAAEV,CAAC,CACR,gEAAgE,EAChE;YAAEW,IAAI,EAAER;UAAM,CAAC;QAEnB,CAAC,CAAC;MACJ;MAEA,OAAO,IAAI;IACb;EACF,CAAC,CAAC;AAAA"}
package/utils.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { Mixin, Subscription } from "@rails/actioncable";
2
2
  import dayjs from "dayjs";
3
3
  import React from "react";
4
+ import { StringSchema } from "yup";
4
5
  export function resetAuthTokens(): void;
5
6
  /**
6
7
  *
@@ -517,4 +518,21 @@ export const currencyFormat: {
517
518
  * showThumbsUpToastr();
518
519
  * @endexample
519
520
  */
520
- export function showThumbsUpToastr(): void;
521
+ export function showThumbsUpToastr(): void;
522
+ /**
523
+ *
524
+ * Ensure a given string is a valid slug, containing only lowercase letters,
525
+ *
526
+ * numbers, and hyphens.
527
+ *
528
+ * @example
529
+ *
530
+ * slugValidator("Slug").isValid("valid-slug"); // output true
531
+ * slugValidator("Slug").isValid("invalid slug"); // output false
532
+ *
533
+ * const schema = yup.object().shape({
534
+ * slug: slugValidator("Slug"),
535
+ * });
536
+ * @endexample
537
+ */
538
+ export function slugValidator(label: string): StringSchema;