@astral/validations 1.19.3 → 1.20.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 (123) hide show
  1. package/compose/compose.d.ts +2 -2
  2. package/compose/compose.js +2 -2
  3. package/composeAllSettled/composeAllSettled.d.ts +2 -2
  4. package/composeAllSettled/composeAllSettled.js +3 -3
  5. package/constants.d.ts +2 -0
  6. package/constants.js +5 -0
  7. package/createRule/createRule.d.ts +10 -2
  8. package/createRule/createRule.js +12 -5
  9. package/esm/compose/compose.d.ts +2 -2
  10. package/esm/compose/compose.js +1 -2
  11. package/esm/composeAllSettled/composeAllSettled.d.ts +2 -2
  12. package/esm/composeAllSettled/composeAllSettled.js +2 -3
  13. package/esm/constants.d.ts +2 -0
  14. package/esm/constants.js +2 -0
  15. package/esm/createRule/createRule.d.ts +10 -2
  16. package/esm/createRule/createRule.js +12 -5
  17. package/esm/index.d.ts +11 -0
  18. package/esm/index.js +11 -0
  19. package/esm/isDate/index.d.ts +1 -0
  20. package/esm/isDate/index.js +1 -0
  21. package/esm/isDate/isDate.d.ts +10 -0
  22. package/esm/isDate/isDate.js +23 -0
  23. package/esm/isINNIP/index.d.ts +1 -0
  24. package/esm/isINNIP/index.js +1 -0
  25. package/esm/isINNIP/isINNIP.d.ts +10 -0
  26. package/esm/isINNIP/isINNIP.js +39 -0
  27. package/esm/isINNUL/index.d.ts +1 -0
  28. package/esm/isINNUL/index.js +1 -0
  29. package/esm/isINNUL/isINNUL.d.ts +10 -0
  30. package/esm/isINNUL/isINNUL.js +34 -0
  31. package/esm/isMaxLength/index.d.ts +1 -0
  32. package/esm/isMaxLength/index.js +1 -0
  33. package/esm/isMaxLength/isMaxLength.d.ts +18 -0
  34. package/esm/isMaxLength/isMaxLength.js +34 -0
  35. package/esm/isMaxValue/index.d.ts +1 -0
  36. package/esm/isMaxValue/index.js +1 -0
  37. package/esm/isMaxValue/isMaxValue.d.ts +17 -0
  38. package/esm/isMaxValue/isMaxValue.js +35 -0
  39. package/esm/isMaybeNumber/index.d.ts +1 -0
  40. package/esm/isMaybeNumber/index.js +1 -0
  41. package/esm/isMaybeNumber/isMaybeNumber.d.ts +10 -0
  42. package/esm/isMaybeNumber/isMaybeNumber.js +23 -0
  43. package/esm/isMinLength/index.d.ts +1 -0
  44. package/esm/isMinLength/index.js +1 -0
  45. package/esm/isMinLength/isMinLength.d.ts +18 -0
  46. package/esm/isMinLength/isMinLength.js +34 -0
  47. package/esm/isMinValue/index.d.ts +1 -0
  48. package/esm/isMinValue/index.js +1 -0
  49. package/esm/isMinValue/isMinValue.d.ts +17 -0
  50. package/esm/isMinValue/isMinValue.js +35 -0
  51. package/esm/isOGRNIP/index.d.ts +1 -0
  52. package/esm/isOGRNIP/index.js +1 -0
  53. package/esm/isOGRNIP/isOGRNIP.d.ts +10 -0
  54. package/esm/isOGRNIP/isOGRNIP.js +26 -0
  55. package/esm/isOGRNUL/index.d.ts +1 -0
  56. package/esm/isOGRNUL/index.js +1 -0
  57. package/esm/isOGRNUL/isOGRNUL.d.ts +10 -0
  58. package/esm/isOGRNUL/isOGRNUL.js +26 -0
  59. package/esm/isRequired/isRequired.d.ts +5 -2
  60. package/esm/isRequired/isRequired.js +1 -2
  61. package/esm/isSNILS/index.d.ts +1 -0
  62. package/esm/isSNILS/index.js +1 -0
  63. package/esm/isSNILS/isSNILS.d.ts +10 -0
  64. package/esm/isSNILS/isSNILS.js +62 -0
  65. package/esm/types.d.ts +1 -1
  66. package/esm/utils/index.d.ts +1 -0
  67. package/esm/utils/index.js +1 -0
  68. package/esm/utils/isEmptyString.d.ts +4 -0
  69. package/esm/utils/isEmptyString.js +6 -0
  70. package/index.d.ts +11 -0
  71. package/index.js +11 -0
  72. package/isDate/index.d.ts +1 -0
  73. package/isDate/index.js +17 -0
  74. package/isDate/isDate.d.ts +10 -0
  75. package/isDate/isDate.js +26 -0
  76. package/isINNIP/index.d.ts +1 -0
  77. package/isINNIP/index.js +17 -0
  78. package/isINNIP/isINNIP.d.ts +10 -0
  79. package/isINNIP/isINNIP.js +42 -0
  80. package/isINNUL/index.d.ts +1 -0
  81. package/isINNUL/index.js +17 -0
  82. package/isINNUL/isINNUL.d.ts +10 -0
  83. package/isINNUL/isINNUL.js +37 -0
  84. package/isMaxLength/index.d.ts +1 -0
  85. package/isMaxLength/index.js +5 -0
  86. package/isMaxLength/isMaxLength.d.ts +18 -0
  87. package/isMaxLength/isMaxLength.js +41 -0
  88. package/isMaxValue/index.d.ts +1 -0
  89. package/isMaxValue/index.js +5 -0
  90. package/isMaxValue/isMaxValue.d.ts +17 -0
  91. package/isMaxValue/isMaxValue.js +39 -0
  92. package/isMaybeNumber/index.d.ts +1 -0
  93. package/isMaybeNumber/index.js +17 -0
  94. package/isMaybeNumber/isMaybeNumber.d.ts +10 -0
  95. package/isMaybeNumber/isMaybeNumber.js +26 -0
  96. package/isMinLength/index.d.ts +1 -0
  97. package/isMinLength/index.js +17 -0
  98. package/isMinLength/isMinLength.d.ts +18 -0
  99. package/isMinLength/isMinLength.js +41 -0
  100. package/isMinValue/index.d.ts +1 -0
  101. package/isMinValue/index.js +5 -0
  102. package/isMinValue/isMinValue.d.ts +17 -0
  103. package/isMinValue/isMinValue.js +39 -0
  104. package/isOGRNIP/index.d.ts +1 -0
  105. package/isOGRNIP/index.js +17 -0
  106. package/isOGRNIP/isOGRNIP.d.ts +10 -0
  107. package/isOGRNIP/isOGRNIP.js +29 -0
  108. package/isOGRNUL/index.d.ts +1 -0
  109. package/isOGRNUL/index.js +17 -0
  110. package/isOGRNUL/isOGRNUL.d.ts +10 -0
  111. package/isOGRNUL/isOGRNUL.js +29 -0
  112. package/isRequired/isRequired.d.ts +5 -2
  113. package/isRequired/isRequired.js +1 -2
  114. package/isSNILS/index.d.ts +1 -0
  115. package/isSNILS/index.js +17 -0
  116. package/isSNILS/isSNILS.d.ts +10 -0
  117. package/isSNILS/isSNILS.js +65 -0
  118. package/package.json +1 -1
  119. package/types.d.ts +1 -1
  120. package/utils/index.d.ts +1 -0
  121. package/utils/index.js +17 -0
  122. package/utils/isEmptyString.d.ts +4 -0
  123. package/utils/isEmptyString.js +10 -0
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isMaxValue = exports.getDefaultMessage = void 0;
4
+ const constants_1 = require("../constants");
5
+ const createRule_1 = require("../createRule");
6
+ const isMaybeNumber_1 = require("../isMaybeNumber");
7
+ const utils_1 = require("../utils");
8
+ const getDefaultMessage = (max) => {
9
+ return `Должно быть меньше чем ${max}`;
10
+ };
11
+ exports.getDefaultMessage = getDefaultMessage;
12
+ /**
13
+ * @description Проверяет максимальное значение value
14
+ * @example isMaxValue({ max: 10 })(1239123);
15
+ * @param {number} [max] Максимальное значение value
16
+ * @param {string} [message.defaultMessage] Сообщение при неудачной валидации
17
+ * @param {string} [message.incorrectValue] Сообщение при переданном некорректном value
18
+ */
19
+ exports.isMaxValue = (0, createRule_1.createRule)(({ max, message = {
20
+ defaultMessage: `Должно быть меньше чем ${max}`,
21
+ incorrectValue: constants_1.INCORRECT_MESSAGE,
22
+ }, }) => (value) => {
23
+ if ((0, utils_1.isEmptyString)(value)) {
24
+ return undefined;
25
+ }
26
+ if (typeof value === 'string' && !(0, isMaybeNumber_1.isMaybeNumber)()(value)) {
27
+ if (parseFloat(value) <= max) {
28
+ return undefined;
29
+ }
30
+ return message.defaultMessage;
31
+ }
32
+ if (typeof value !== 'number' || isNaN(value)) {
33
+ return message.incorrectValue;
34
+ }
35
+ if (value <= max) {
36
+ return undefined;
37
+ }
38
+ return message.defaultMessage;
39
+ });
@@ -0,0 +1 @@
1
+ export * from './isMaybeNumber';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./isMaybeNumber"), exports);
@@ -0,0 +1,10 @@
1
+ export declare const IS_MAYBE_NUMBER_RULE_DEFAULT_MESSAGE = "\u041D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u043E \u0432 \u0447\u0438\u0441\u043B\u043E";
2
+ /**
3
+ * @description Проверяет может ли значение быть преобразованным в число
4
+ * @example isMaybeNumber()('7728168971');
5
+ */
6
+ export declare const isMaybeNumber: (params?: ({
7
+ message?: string | undefined;
8
+ } & {
9
+ exclude?: ((value: unknown) => boolean) | undefined;
10
+ }) | undefined) => import("..").InitializedRule;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isMaybeNumber = exports.IS_MAYBE_NUMBER_RULE_DEFAULT_MESSAGE = void 0;
4
+ const createRule_1 = require("../createRule");
5
+ const constants_1 = require("../constants");
6
+ const utils_1 = require("../utils");
7
+ exports.IS_MAYBE_NUMBER_RULE_DEFAULT_MESSAGE = 'Не может быть преобразовано в число';
8
+ /**
9
+ * @description Проверяет может ли значение быть преобразованным в число
10
+ * @example isMaybeNumber()('7728168971');
11
+ */
12
+ exports.isMaybeNumber = (0, createRule_1.createRule)(({ message = exports.IS_MAYBE_NUMBER_RULE_DEFAULT_MESSAGE } = {}) => (value) => {
13
+ if ((0, utils_1.isEmptyString)(value)) {
14
+ return undefined;
15
+ }
16
+ if (typeof value === 'string' &&
17
+ !isNaN(Number(value)) &&
18
+ !constants_1.CONTAINS_SPACES_REGEX.test(value) &&
19
+ value !== '') {
20
+ return undefined;
21
+ }
22
+ if (typeof value === 'number' && !isNaN(value)) {
23
+ return undefined;
24
+ }
25
+ return message;
26
+ });
@@ -0,0 +1 @@
1
+ export * from './isMinLength';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./isMinLength"), exports);
@@ -0,0 +1,18 @@
1
+ export declare const getDefaultMessage: (min: number) => string;
2
+ /**
3
+ * @description Проверяет минимальную длину value
4
+ * @example isMinLength({ min: 10 })(1239123);
5
+ * @example isMinLength({ min: 10 })('1239123');
6
+ * @param {number} [min] Минимальная длина value
7
+ * @param {string} [message.defaultMessage] Сообщение при неудачной валидации
8
+ * @param {string} [message.incorrectValue] Сообщение при переданном некорректном value
9
+ */
10
+ export declare const isMinLength: (params: {
11
+ message?: {
12
+ defaultMessage?: string | undefined;
13
+ incorrectValue?: string | undefined;
14
+ } | undefined;
15
+ min: number;
16
+ } & {
17
+ exclude?: ((value: unknown) => boolean) | undefined;
18
+ }) => import("..").InitializedRule;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.isMinLength = exports.getDefaultMessage = void 0;
7
+ const lodash_isempty_1 = __importDefault(require("lodash.isempty"));
8
+ const createRule_1 = require("../createRule");
9
+ const constants_1 = require("../constants");
10
+ const utils_1 = require("../utils");
11
+ const getDefaultMessage = (min) => `Мин. символов: ${min}`;
12
+ exports.getDefaultMessage = getDefaultMessage;
13
+ /**
14
+ * @description Проверяет минимальную длину value
15
+ * @example isMinLength({ min: 10 })(1239123);
16
+ * @example isMinLength({ min: 10 })('1239123');
17
+ * @param {number} [min] Минимальная длина value
18
+ * @param {string} [message.defaultMessage] Сообщение при неудачной валидации
19
+ * @param {string} [message.incorrectValue] Сообщение при переданном некорректном value
20
+ */
21
+ exports.isMinLength = (0, createRule_1.createRule)(({ min, message = {
22
+ defaultMessage: `Мин. символов: ${min}`,
23
+ incorrectValue: constants_1.INCORRECT_MESSAGE,
24
+ }, } = { min: 0 }) => (value) => {
25
+ if ((0, utils_1.isEmptyString)(value)) {
26
+ return undefined;
27
+ }
28
+ if (min < 0) {
29
+ throw new Error('Значение параметра `min` должно быть >= 0');
30
+ }
31
+ if (typeof value === 'string' || Array.isArray(value)) {
32
+ return value.length < min ? message.defaultMessage : undefined;
33
+ }
34
+ if (typeof value !== 'string' || !Array.isArray(value)) {
35
+ return message.incorrectValue;
36
+ }
37
+ if ((0, lodash_isempty_1.default)(value)) {
38
+ return undefined;
39
+ }
40
+ return undefined;
41
+ });
@@ -0,0 +1 @@
1
+ export { isMinValue } from './isMinValue';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isMinValue = void 0;
4
+ var isMinValue_1 = require("./isMinValue");
5
+ Object.defineProperty(exports, "isMinValue", { enumerable: true, get: function () { return isMinValue_1.isMinValue; } });
@@ -0,0 +1,17 @@
1
+ export declare const getDefaultMessage: (min: number) => string;
2
+ /**
3
+ * @description Проверяет минимальное значение value
4
+ * @example isMinValue({ min: 10 })(1239123);
5
+ * @param {number} [min] Минимальное значение value
6
+ * @param {string} [message.defaultMessage] Сообщение при неудачной валидации
7
+ * @param {string} [message.incorrectValue] Сообщение при переданном некорректном value
8
+ */
9
+ export declare const isMinValue: (params: {
10
+ min: number;
11
+ message?: {
12
+ defaultMessage?: string | undefined;
13
+ incorrectValue?: string | undefined;
14
+ } | undefined;
15
+ } & {
16
+ exclude?: ((value: unknown) => boolean) | undefined;
17
+ }) => import("..").InitializedRule;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isMinValue = exports.getDefaultMessage = void 0;
4
+ const constants_1 = require("../constants");
5
+ const createRule_1 = require("../createRule");
6
+ const isMaybeNumber_1 = require("../isMaybeNumber");
7
+ const utils_1 = require("../utils");
8
+ const getDefaultMessage = (min) => {
9
+ return `Должно быть больше чем ${min}`;
10
+ };
11
+ exports.getDefaultMessage = getDefaultMessage;
12
+ /**
13
+ * @description Проверяет минимальное значение value
14
+ * @example isMinValue({ min: 10 })(1239123);
15
+ * @param {number} [min] Минимальное значение value
16
+ * @param {string} [message.defaultMessage] Сообщение при неудачной валидации
17
+ * @param {string} [message.incorrectValue] Сообщение при переданном некорректном value
18
+ */
19
+ exports.isMinValue = (0, createRule_1.createRule)(({ min, message = {
20
+ defaultMessage: `Должно быть больше чем ${min}`,
21
+ incorrectValue: constants_1.INCORRECT_MESSAGE,
22
+ }, } = { min: 0 }) => (value) => {
23
+ if ((0, utils_1.isEmptyString)(value)) {
24
+ return undefined;
25
+ }
26
+ if (typeof value === 'string' && !(0, isMaybeNumber_1.isMaybeNumber)()(value)) {
27
+ if (parseFloat(value) >= min) {
28
+ return undefined;
29
+ }
30
+ return message.defaultMessage;
31
+ }
32
+ if (typeof value !== 'number' || isNaN(value)) {
33
+ return message.incorrectValue;
34
+ }
35
+ if (value >= min) {
36
+ return undefined;
37
+ }
38
+ return message.defaultMessage;
39
+ });
@@ -0,0 +1 @@
1
+ export * from './isOGRNIP';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./isOGRNIP"), exports);
@@ -0,0 +1,10 @@
1
+ export declare const IS_OGRNIP_DEFAULT_MESSAGE = "\u041D\u0435\u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u044B\u0439 \u041E\u0413\u0420\u041D \u0418\u041F";
2
+ /**
3
+ * @description Проверяет валиден ли ОРГН ИП
4
+ * @example isOGRNIP()('7728168971');
5
+ */
6
+ export declare const isOGRNIP: (params?: ({
7
+ message?: string | undefined;
8
+ } & {
9
+ exclude?: ((value: unknown) => boolean) | undefined;
10
+ }) | undefined) => import("..").InitializedRule;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isOGRNIP = exports.IS_OGRNIP_DEFAULT_MESSAGE = void 0;
4
+ const createRule_1 = require("../createRule");
5
+ const utils_1 = require("../utils");
6
+ exports.IS_OGRNIP_DEFAULT_MESSAGE = 'Некорректный ОГРН ИП';
7
+ const OGRNIP_LENGTH = 15;
8
+ /**
9
+ * @description Проверяет валиден ли ОРГН ИП
10
+ * @example isOGRNIP()('7728168971');
11
+ */
12
+ exports.isOGRNIP = (0, createRule_1.createRule)(({ message = exports.IS_OGRNIP_DEFAULT_MESSAGE } = {}) => (value) => {
13
+ if ((0, utils_1.isEmptyString)(value)) {
14
+ return undefined;
15
+ }
16
+ if (typeof value === 'string') {
17
+ if (value.length !== OGRNIP_LENGTH) {
18
+ return message;
19
+ }
20
+ const checkSum = (parseInt(value.slice(0, -1)) % 13)
21
+ .toString()
22
+ .slice(-1);
23
+ if (value.slice(14, 15) !== checkSum) {
24
+ return message;
25
+ }
26
+ return undefined;
27
+ }
28
+ return message;
29
+ });
@@ -0,0 +1 @@
1
+ export * from './isOGRNUL';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./isOGRNUL"), exports);
@@ -0,0 +1,10 @@
1
+ export declare const IS_OGRNUL_DEFAULT_MESSAGE = "\u041D\u0435\u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u044B\u0439 \u041E\u0413\u0420\u041D \u042E\u041B";
2
+ /**
3
+ * @description Проверяет валиден ли ОРГН ЮЛ
4
+ * @example isOGRNUL()('7728168971');
5
+ */
6
+ export declare const isOGRNUL: (params?: ({
7
+ message?: string | undefined;
8
+ } & {
9
+ exclude?: ((value: unknown) => boolean) | undefined;
10
+ }) | undefined) => import("..").InitializedRule;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isOGRNUL = exports.IS_OGRNUL_DEFAULT_MESSAGE = void 0;
4
+ const createRule_1 = require("../createRule");
5
+ const utils_1 = require("../utils");
6
+ exports.IS_OGRNUL_DEFAULT_MESSAGE = 'Некорректный ОГРН ЮЛ';
7
+ const OGRNUL_LENGTH = 13;
8
+ /**
9
+ * @description Проверяет валиден ли ОРГН ЮЛ
10
+ * @example isOGRNUL()('7728168971');
11
+ */
12
+ exports.isOGRNUL = (0, createRule_1.createRule)(({ message = exports.IS_OGRNUL_DEFAULT_MESSAGE } = {}) => (value) => {
13
+ if ((0, utils_1.isEmptyString)(value)) {
14
+ return undefined;
15
+ }
16
+ if (typeof value === 'string') {
17
+ if (value.length !== OGRNUL_LENGTH) {
18
+ return message;
19
+ }
20
+ const checkSum = (parseInt(value.slice(0, -1)) % 11)
21
+ .toString()
22
+ .slice(-1);
23
+ if (value.slice(12, 13) !== checkSum) {
24
+ return message;
25
+ }
26
+ return undefined;
27
+ }
28
+ return message;
29
+ });
@@ -3,6 +3,9 @@ export declare const REQUIRED_RULE_DEFAULT_MESSAGE = "\u041D\u0435 \u0437\u0430\
3
3
  * @description Проверяет присутсвует ли value
4
4
  * @example isRequired();
5
5
  * @example isRequired('ИНН обязателен');
6
- * @param {string} [message] - 'Не заполнено'
7
6
  */
8
- export declare const isRequired: import("..").Rule<[message?: string | undefined]>;
7
+ export declare const isRequired: (params?: ({
8
+ message?: string | undefined;
9
+ } & {
10
+ exclude?: ((value: unknown) => boolean) | undefined;
11
+ }) | undefined) => import("..").InitializedRule;
@@ -11,9 +11,8 @@ exports.REQUIRED_RULE_DEFAULT_MESSAGE = 'Не заполнено';
11
11
  * @description Проверяет присутсвует ли value
12
12
  * @example isRequired();
13
13
  * @example isRequired('ИНН обязателен');
14
- * @param {string} [message] - 'Не заполнено'
15
14
  */
16
- exports.isRequired = (0, createRule_1.createRule)((message = exports.REQUIRED_RULE_DEFAULT_MESSAGE) => (value) => {
15
+ exports.isRequired = (0, createRule_1.createRule)(({ message = exports.REQUIRED_RULE_DEFAULT_MESSAGE } = {}) => (value) => {
17
16
  if (typeof value === 'number' || value instanceof Date) {
18
17
  return undefined;
19
18
  }
@@ -0,0 +1 @@
1
+ export * from './isSNILS';
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./isSNILS"), exports);
@@ -0,0 +1,10 @@
1
+ export declare const IS_SNILS_DEFAULT_MESSAGE = "\u041D\u0435\u043A\u043E\u0440\u0440\u0435\u043A\u0442\u043D\u044B\u0439 \u0421\u041D\u0418\u041B\u0421";
2
+ /**
3
+ * @description Проверяет валиден ли СНИЛС
4
+ * @example isSNILS()('95145370513');
5
+ */
6
+ export declare const isSNILS: (params?: ({
7
+ message?: string | undefined;
8
+ } & {
9
+ exclude?: ((value: unknown) => boolean) | undefined;
10
+ }) | undefined) => import("..").InitializedRule;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isSNILS = exports.IS_SNILS_DEFAULT_MESSAGE = void 0;
4
+ const createRule_1 = require("../createRule");
5
+ const utils_1 = require("../utils");
6
+ exports.IS_SNILS_DEFAULT_MESSAGE = 'Некорректный СНИЛС';
7
+ const RESTRICTED_VALUES = ['00000000000'];
8
+ const DEFAULT_CHECKED_SUM = [0, 100, 101];
9
+ const removeSpecialCharacters = (value) => {
10
+ return value.replace(/\D/g, '');
11
+ };
12
+ const calcCheckSumForSNILS = (digitsOfValue) => digitsOfValue
13
+ .slice(0, 9)
14
+ .split('')
15
+ .map(Number)
16
+ .reduce((sum, currentValue, index) => sum + currentValue * (9 - index), 0);
17
+ const compareCheckSum = (calculatedCheckSum, checkSum) => {
18
+ return (calculatedCheckSum % DEFAULT_CHECKED_SUM[2] === checkSum ||
19
+ (calculatedCheckSum % DEFAULT_CHECKED_SUM[2] === DEFAULT_CHECKED_SUM[1] &&
20
+ checkSum === DEFAULT_CHECKED_SUM[0]));
21
+ };
22
+ /**
23
+ * @description Проверяет валиден ли СНИЛС
24
+ * @example isSNILS()('95145370513');
25
+ */
26
+ exports.isSNILS = (0, createRule_1.createRule)(({ message = exports.IS_SNILS_DEFAULT_MESSAGE } = {}) => (value) => {
27
+ if ((0, utils_1.isEmptyString)(value)) {
28
+ return undefined;
29
+ }
30
+ if (typeof value !== 'string') {
31
+ return message;
32
+ }
33
+ const formattedValue = removeSpecialCharacters(value);
34
+ if (formattedValue.length !== value.length) {
35
+ return message;
36
+ }
37
+ if (!/^(\d{11})$/.test(formattedValue)) {
38
+ return message;
39
+ }
40
+ if (RESTRICTED_VALUES.includes(formattedValue)) {
41
+ return message;
42
+ }
43
+ const checkSum = Number(formattedValue.slice(9, 11));
44
+ const calculatedCheckSum = calcCheckSumForSNILS(formattedValue);
45
+ if (calculatedCheckSum < DEFAULT_CHECKED_SUM[1]) {
46
+ if (calculatedCheckSum === checkSum) {
47
+ return undefined;
48
+ }
49
+ return message;
50
+ }
51
+ if (calculatedCheckSum === DEFAULT_CHECKED_SUM[1] ||
52
+ calculatedCheckSum === DEFAULT_CHECKED_SUM[2]) {
53
+ if (checkSum === DEFAULT_CHECKED_SUM[0]) {
54
+ return undefined;
55
+ }
56
+ return message;
57
+ }
58
+ if (calculatedCheckSum > DEFAULT_CHECKED_SUM[2]) {
59
+ if (compareCheckSum(calculatedCheckSum, checkSum)) {
60
+ return undefined;
61
+ }
62
+ return message;
63
+ }
64
+ return undefined;
65
+ });
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "dependencies": {
6
6
  "lodash.isempty": "^4.4.0"
7
7
  },
8
- "version": "1.19.3",
8
+ "version": "1.20.0",
9
9
  "author": "Astral.Soft",
10
10
  "license": "MIT",
11
11
  "repository": {
package/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export declare type RuleError = string | string[];
2
2
  export declare type ValidationResult = RuleError | undefined;
3
3
  export declare type InitializedRule = (value?: unknown) => ValidationResult;
4
- export declare type Rule<Args extends unknown[]> = (...args: Args) => InitializedRule;
4
+ export declare type Rule<Params extends object, RequiredParams extends boolean> = RequiredParams extends true ? (params: Params) => InitializedRule : (params?: Params) => InitializedRule;
@@ -0,0 +1 @@
1
+ export * from './isEmptyString';
package/utils/index.js ADDED
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./isEmptyString"), exports);
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @description Используется в правилах валидации для проверки того, что проверяемое значение еще не указано
3
+ */
4
+ export declare const isEmptyString: (value: unknown) => boolean;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isEmptyString = void 0;
4
+ /**
5
+ * @description Используется в правилах валидации для проверки того, что проверяемое значение еще не указано
6
+ */
7
+ const isEmptyString = (value) => {
8
+ return value === '';
9
+ };
10
+ exports.isEmptyString = isEmptyString;