@fovestta2/validation-engine 1.0.4 → 1.0.6
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/dist/engine/Validator.d.ts.map +1 -1
- package/dist/engine/Validator.js +12 -0
- package/dist/engine/Validator.js.map +1 -1
- package/dist/rules/CustomRule.d.ts +9 -0
- package/dist/rules/CustomRule.d.ts.map +1 -0
- package/dist/rules/CustomRule.js +22 -0
- package/dist/rules/CustomRule.js.map +1 -0
- package/dist/rules/DuplicateRule.d.ts +9 -0
- package/dist/rules/DuplicateRule.d.ts.map +1 -0
- package/dist/rules/DuplicateRule.js +26 -0
- package/dist/rules/DuplicateRule.js.map +1 -0
- package/dist/rules/MaxRule.d.ts +9 -0
- package/dist/rules/MaxRule.d.ts.map +1 -0
- package/dist/rules/MaxRule.js +27 -0
- package/dist/rules/MaxRule.js.map +1 -0
- package/dist/rules/MinRule.d.ts +9 -0
- package/dist/rules/MinRule.d.ts.map +1 -0
- package/dist/rules/MinRule.js +27 -0
- package/dist/rules/MinRule.js.map +1 -0
- package/dist/rules/NumericRule.js +1 -1
- package/dist/rules/NumericRule.js.map +1 -1
- package/dist/rules/index.d.ts +5 -0
- package/dist/rules/index.d.ts.map +1 -1
- package/dist/rules/index.js +5 -0
- package/dist/rules/index.js.map +1 -1
- package/dist/types/ValidationResult.d.ts +1 -0
- package/dist/types/ValidationResult.d.ts.map +1 -1
- package/dist/types/ValidationSchema.d.ts +1 -0
- package/dist/types/ValidationSchema.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Validator.d.ts","sourceRoot":"","sources":["../../src/engine/Validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"Validator.d.ts","sourceRoot":"","sources":["../../src/engine/Validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAiB9D,KAAK,SAAS,GAAG;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,gBAAgB,CAAC;CACzD,CAAC;AAEF,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAC,YAAY,CAgBxB;IAEH,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,gBAAgB,GAAG,gBAAgB;IA0CvE,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAI/C,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIzC,MAAM,CAAC,kBAAkB,IAAI,MAAM,EAAE;CAGtC"}
|
package/dist/engine/Validator.js
CHANGED
|
@@ -12,6 +12,10 @@ const MaxAgeRule_1 = require("../rules/MaxAgeRule");
|
|
|
12
12
|
const NumericRule_1 = require("../rules/NumericRule");
|
|
13
13
|
const RangeRule_1 = require("../rules/RangeRule");
|
|
14
14
|
const PasswordComplexityRule_1 = require("../rules/PasswordComplexityRule");
|
|
15
|
+
const MinRule_1 = require("../rules/MinRule");
|
|
16
|
+
const MaxRule_1 = require("../rules/MaxRule");
|
|
17
|
+
const CustomRule_1 = require("../rules/CustomRule");
|
|
18
|
+
const DuplicateRule_1 = require("../rules/DuplicateRule");
|
|
15
19
|
class Validator {
|
|
16
20
|
static validate(value, schema) {
|
|
17
21
|
if (!schema || !schema.rules || !Array.isArray(schema.rules)) {
|
|
@@ -27,6 +31,10 @@ class Validator {
|
|
|
27
31
|
try {
|
|
28
32
|
const result = ruleImpl.validate(value, rule.params || {});
|
|
29
33
|
if (!result.isValid) {
|
|
34
|
+
result.message = rule.message || result.message;
|
|
35
|
+
if (rule.errorKey) {
|
|
36
|
+
result.errorKey = rule.errorKey;
|
|
37
|
+
}
|
|
30
38
|
const priorityIndex = schema.errorPriority ? schema.errorPriority.indexOf(rule.name) : -1;
|
|
31
39
|
errors.push({
|
|
32
40
|
priority: priorityIndex === -1 ? 999 : priorityIndex,
|
|
@@ -67,5 +75,9 @@ Validator.ruleRegistry = new Map([
|
|
|
67
75
|
[NumericRule_1.NumericRule.ruleName, NumericRule_1.NumericRule],
|
|
68
76
|
[RangeRule_1.RangeRule.ruleName, RangeRule_1.RangeRule],
|
|
69
77
|
[PasswordComplexityRule_1.PasswordComplexityRule.ruleName, PasswordComplexityRule_1.PasswordComplexityRule],
|
|
78
|
+
[MinRule_1.MinRule.ruleName, MinRule_1.MinRule],
|
|
79
|
+
[MaxRule_1.MaxRule.ruleName, MaxRule_1.MaxRule],
|
|
80
|
+
[CustomRule_1.CustomRule.ruleName, CustomRule_1.CustomRule],
|
|
81
|
+
[DuplicateRule_1.DuplicateRule.ruleName, DuplicateRule_1.DuplicateRule],
|
|
70
82
|
]);
|
|
71
83
|
//# sourceMappingURL=Validator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Validator.js","sourceRoot":"","sources":["../../src/engine/Validator.ts"],"names":[],"mappings":";;;AACA,wDAAqD;AACrD,0DAAuD;AACvD,0DAAuD;AACvD,kDAA+C;AAC/C,sDAAmD;AACnD,sDAAmD;AACnD,oDAAiD;AACjD,oDAAiD;AACjD,sDAAmD;AACnD,kDAA+C;AAC/C,4EAAyE;
|
|
1
|
+
{"version":3,"file":"Validator.js","sourceRoot":"","sources":["../../src/engine/Validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ValidationResult } from "../types";
|
|
2
|
+
export interface CustomRuleParams {
|
|
3
|
+
validator: (value: any) => boolean;
|
|
4
|
+
}
|
|
5
|
+
export declare class CustomRule {
|
|
6
|
+
static readonly ruleName = "custom";
|
|
7
|
+
static validate(value: any, params: CustomRuleParams): ValidationResult;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=CustomRule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CustomRule.d.ts","sourceRoot":"","sources":["../../src/rules/CustomRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,WAAW,gBAAgB;IAC7B,SAAS,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC;CACtC;AAED,qBAAa,UAAU;IACnB,MAAM,CAAC,QAAQ,CAAC,QAAQ,YAAY;IAEpC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,gBAAgB,GAAG,gBAAgB;CAgB1E"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CustomRule = void 0;
|
|
4
|
+
class CustomRule {
|
|
5
|
+
static validate(value, params) {
|
|
6
|
+
if (!params || typeof params.validator !== "function") {
|
|
7
|
+
console.warn("CustomRule expected a 'validator' function param.");
|
|
8
|
+
return { isValid: true, errorKey: null };
|
|
9
|
+
}
|
|
10
|
+
const isValid = params.validator(value);
|
|
11
|
+
return {
|
|
12
|
+
isValid,
|
|
13
|
+
errorKey: isValid ? null : "ERR_CUSTOM_INVALID",
|
|
14
|
+
metadata: {
|
|
15
|
+
ruleName: CustomRule.ruleName,
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.CustomRule = CustomRule;
|
|
21
|
+
CustomRule.ruleName = "custom";
|
|
22
|
+
//# sourceMappingURL=CustomRule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CustomRule.js","sourceRoot":"","sources":["../../src/rules/CustomRule.ts"],"names":[],"mappings":";;;AAMA,MAAa,UAAU;IAGnB,MAAM,CAAC,QAAQ,CAAC,KAAU,EAAE,MAAwB;QAChD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YACpD,OAAO,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;YAClE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC7C,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAExC,OAAO;YACH,OAAO;YACP,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB;YAC/C,QAAQ,EAAE;gBACN,QAAQ,EAAE,UAAU,CAAC,QAAQ;aAChC;SACJ,CAAC;IACN,CAAC;;AAlBL,gCAmBC;AAlBmB,mBAAQ,GAAG,QAAQ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ValidationResult } from "../types";
|
|
2
|
+
export interface DuplicateRuleParams {
|
|
3
|
+
existingValues: any[];
|
|
4
|
+
}
|
|
5
|
+
export declare class DuplicateRule {
|
|
6
|
+
static readonly ruleName = "duplicate";
|
|
7
|
+
static validate(value: any, params: DuplicateRuleParams): ValidationResult;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=DuplicateRule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DuplicateRule.d.ts","sourceRoot":"","sources":["../../src/rules/DuplicateRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,WAAW,mBAAmB;IAChC,cAAc,EAAE,GAAG,EAAE,CAAC;CACzB;AAED,qBAAa,aAAa;IACtB,MAAM,CAAC,QAAQ,CAAC,QAAQ,eAAe;IAEvC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,mBAAmB,GAAG,gBAAgB;CAqB7E"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DuplicateRule = void 0;
|
|
4
|
+
class DuplicateRule {
|
|
5
|
+
static validate(value, params) {
|
|
6
|
+
if (!params || !params.existingValues || !Array.isArray(params.existingValues)) {
|
|
7
|
+
return { isValid: true, errorKey: null };
|
|
8
|
+
}
|
|
9
|
+
if (value === null || value === undefined || value === "") {
|
|
10
|
+
return { isValid: true, errorKey: null };
|
|
11
|
+
}
|
|
12
|
+
const valueToCheck = typeof value === 'string' ? value.toLowerCase().trim() : value;
|
|
13
|
+
const isDuplicate = params.existingValues.some(existing => {
|
|
14
|
+
const existingToCheck = typeof existing === 'string' ? existing.toLowerCase().trim() : existing;
|
|
15
|
+
return existingToCheck === valueToCheck;
|
|
16
|
+
});
|
|
17
|
+
return {
|
|
18
|
+
isValid: !isDuplicate,
|
|
19
|
+
errorKey: isDuplicate ? "ERR_DUPLICATE" : null,
|
|
20
|
+
metadata: { ruleName: DuplicateRule.ruleName },
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.DuplicateRule = DuplicateRule;
|
|
25
|
+
DuplicateRule.ruleName = "duplicate";
|
|
26
|
+
//# sourceMappingURL=DuplicateRule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DuplicateRule.js","sourceRoot":"","sources":["../../src/rules/DuplicateRule.ts"],"names":[],"mappings":";;;AAMA,MAAa,aAAa;IAGtB,MAAM,CAAC,QAAQ,CAAC,KAAU,EAAE,MAA2B;QACnD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;YAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC7C,CAAC;QAED,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YACxD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC7C,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QACpF,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YACtD,MAAM,eAAe,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;YAChG,OAAO,eAAe,KAAK,YAAY,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,OAAO;YACH,OAAO,EAAE,CAAC,WAAW;YACrB,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI;YAC9C,QAAQ,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,QAAQ,EAAE;SACjD,CAAC;IACN,CAAC;;AAvBL,sCAwBC;AAvBmB,sBAAQ,GAAG,WAAW,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ValidationResult } from "../types";
|
|
2
|
+
export interface MaxRuleParams {
|
|
3
|
+
value: number;
|
|
4
|
+
}
|
|
5
|
+
export declare class MaxRule {
|
|
6
|
+
static readonly ruleName = "max";
|
|
7
|
+
static validate(value: any, params: MaxRuleParams): ValidationResult;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=MaxRule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaxRule.d.ts","sourceRoot":"","sources":["../../src/rules/MaxRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,WAAW,aAAa;IAC1B,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,OAAO;IAChB,MAAM,CAAC,QAAQ,CAAC,QAAQ,SAAS;IAEjC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,GAAG,gBAAgB;CAuBvE"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MaxRule = void 0;
|
|
4
|
+
class MaxRule {
|
|
5
|
+
static validate(value, params) {
|
|
6
|
+
if (value === null || value === undefined || value === "") {
|
|
7
|
+
return { isValid: true, errorKey: null };
|
|
8
|
+
}
|
|
9
|
+
const numValue = Number(value);
|
|
10
|
+
if (isNaN(numValue)) {
|
|
11
|
+
return { isValid: false, errorKey: "ERR_NUMERIC_INVALID" };
|
|
12
|
+
}
|
|
13
|
+
const isValid = numValue <= params.value;
|
|
14
|
+
return {
|
|
15
|
+
isValid,
|
|
16
|
+
errorKey: isValid ? null : "ERR_MAX_VALUE",
|
|
17
|
+
metadata: {
|
|
18
|
+
ruleName: MaxRule.ruleName,
|
|
19
|
+
max: params.value,
|
|
20
|
+
actual: numValue,
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.MaxRule = MaxRule;
|
|
26
|
+
MaxRule.ruleName = "max";
|
|
27
|
+
//# sourceMappingURL=MaxRule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaxRule.js","sourceRoot":"","sources":["../../src/rules/MaxRule.ts"],"names":[],"mappings":";;;AAMA,MAAa,OAAO;IAGhB,MAAM,CAAC,QAAQ,CAAC,KAAU,EAAE,MAAqB;QAC7C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YACxD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC7C,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAE/B,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,qBAAqB,EAAE,CAAC;QAC/D,CAAC;QAED,MAAM,OAAO,GAAG,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC;QAEzC,OAAO;YACH,OAAO;YACP,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe;YAC1C,QAAQ,EAAE;gBACN,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,GAAG,EAAE,MAAM,CAAC,KAAK;gBACjB,MAAM,EAAE,QAAQ;aACnB;SACJ,CAAC;IACN,CAAC;;AAzBL,0BA0BC;AAzBmB,gBAAQ,GAAG,KAAK,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ValidationResult } from "../types";
|
|
2
|
+
export interface MinRuleParams {
|
|
3
|
+
value: number;
|
|
4
|
+
}
|
|
5
|
+
export declare class MinRule {
|
|
6
|
+
static readonly ruleName = "min";
|
|
7
|
+
static validate(value: any, params: MinRuleParams): ValidationResult;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=MinRule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MinRule.d.ts","sourceRoot":"","sources":["../../src/rules/MinRule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,WAAW,aAAa;IAC1B,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,OAAO;IAChB,MAAM,CAAC,QAAQ,CAAC,QAAQ,SAAS;IAEjC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,GAAG,gBAAgB;CAuBvE"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MinRule = void 0;
|
|
4
|
+
class MinRule {
|
|
5
|
+
static validate(value, params) {
|
|
6
|
+
if (value === null || value === undefined || value === "") {
|
|
7
|
+
return { isValid: true, errorKey: null };
|
|
8
|
+
}
|
|
9
|
+
const numValue = Number(value);
|
|
10
|
+
if (isNaN(numValue)) {
|
|
11
|
+
return { isValid: false, errorKey: "ERR_NUMERIC_INVALID" };
|
|
12
|
+
}
|
|
13
|
+
const isValid = numValue >= params.value;
|
|
14
|
+
return {
|
|
15
|
+
isValid,
|
|
16
|
+
errorKey: isValid ? null : "ERR_MIN_VALUE",
|
|
17
|
+
metadata: {
|
|
18
|
+
ruleName: MinRule.ruleName,
|
|
19
|
+
min: params.value,
|
|
20
|
+
actual: numValue,
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.MinRule = MinRule;
|
|
26
|
+
MinRule.ruleName = "min";
|
|
27
|
+
//# sourceMappingURL=MinRule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MinRule.js","sourceRoot":"","sources":["../../src/rules/MinRule.ts"],"names":[],"mappings":";;;AAMA,MAAa,OAAO;IAGhB,MAAM,CAAC,QAAQ,CAAC,KAAU,EAAE,MAAqB;QAC7C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YACxD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC7C,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAE/B,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,qBAAqB,EAAE,CAAC;QAC/D,CAAC;QAED,MAAM,OAAO,GAAG,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC;QAEzC,OAAO;YACH,OAAO;YACP,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe;YAC1C,QAAQ,EAAE;gBACN,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,GAAG,EAAE,MAAM,CAAC,KAAK;gBACjB,MAAM,EAAE,QAAQ;aACnB;SACJ,CAAC;IACN,CAAC;;AAzBL,0BA0BC;AAzBmB,gBAAQ,GAAG,KAAK,CAAC"}
|
|
@@ -6,7 +6,7 @@ class NumericRule {
|
|
|
6
6
|
if (!value) {
|
|
7
7
|
return { isValid: true, errorKey: null };
|
|
8
8
|
}
|
|
9
|
-
const { allowDecimals = true, allowNegative =
|
|
9
|
+
const { allowDecimals = true, allowNegative = false, decimalPlaces, } = params || {};
|
|
10
10
|
// Build regex pattern based on params
|
|
11
11
|
let pattern = "";
|
|
12
12
|
if (allowNegative) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumericRule.js","sourceRoot":"","sources":["../../src/rules/NumericRule.ts"],"names":[],"mappings":";;;AAQA,MAAa,WAAW;IAGtB,MAAM,CAAC,QAAQ,CAAC,KAAa,EAAE,MAAyB;QACtD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC3C,CAAC;QAED,MAAM,EACJ,aAAa,GAAG,IAAI,EACpB,aAAa,GAAG,
|
|
1
|
+
{"version":3,"file":"NumericRule.js","sourceRoot":"","sources":["../../src/rules/NumericRule.ts"],"names":[],"mappings":";;;AAQA,MAAa,WAAW;IAGtB,MAAM,CAAC,QAAQ,CAAC,KAAa,EAAE,MAAyB;QACtD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC3C,CAAC;QAED,MAAM,EACJ,aAAa,GAAG,IAAI,EACpB,aAAa,GAAG,KAAK,EACrB,aAAa,GACd,GAAG,MAAM,IAAI,EAAE,CAAC;QAEjB,sCAAsC;QACtC,IAAI,OAAO,GAAG,EAAE,CAAC;QAEjB,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,GAAG,KAAK,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,GAAG,CAAC;QAChB,CAAC;QAED,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAChC,OAAO,IAAI,iBAAiB,aAAa,MAAM,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,iBAAiB,CAAC;YAC/B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,OAAO,CAAC;QACrB,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAElC,OAAO;YACL,OAAO;YACP,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB;YAChD,QAAQ,EAAE;gBACR,QAAQ,EAAE,WAAW,CAAC,QAAQ;gBAC9B,aAAa;gBACb,aAAa;gBACb,aAAa;aACd;SACF,CAAC;IACJ,CAAC;;AA9CH,kCA+CC;AA9CiB,oBAAQ,GAAG,SAAS,CAAC"}
|
package/dist/rules/index.d.ts
CHANGED
|
@@ -8,4 +8,9 @@ export * from "./MinAgeRule";
|
|
|
8
8
|
export * from "./MaxAgeRule";
|
|
9
9
|
export * from "./NumericRule";
|
|
10
10
|
export * from "./RangeRule";
|
|
11
|
+
export * from "./MinRule";
|
|
12
|
+
export * from "./MaxRule";
|
|
13
|
+
export * from "./CustomRule";
|
|
14
|
+
export * from "./DuplicateRule";
|
|
15
|
+
export * from "./PasswordComplexityRule";
|
|
11
16
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC"}
|
package/dist/rules/index.js
CHANGED
|
@@ -24,4 +24,9 @@ __exportStar(require("./MinAgeRule"), exports);
|
|
|
24
24
|
__exportStar(require("./MaxAgeRule"), exports);
|
|
25
25
|
__exportStar(require("./NumericRule"), exports);
|
|
26
26
|
__exportStar(require("./RangeRule"), exports);
|
|
27
|
+
__exportStar(require("./MinRule"), exports);
|
|
28
|
+
__exportStar(require("./MaxRule"), exports);
|
|
29
|
+
__exportStar(require("./CustomRule"), exports);
|
|
30
|
+
__exportStar(require("./DuplicateRule"), exports);
|
|
31
|
+
__exportStar(require("./PasswordComplexityRule"), exports);
|
|
27
32
|
//# sourceMappingURL=index.js.map
|
package/dist/rules/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,kDAAgC;AAChC,kDAAgC;AAChC,8CAA4B;AAC5B,gDAA8B;AAC9B,gDAA8B;AAC9B,+CAA6B;AAC7B,+CAA6B;AAC7B,gDAA8B;AAC9B,8CAA4B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,kDAAgC;AAChC,kDAAgC;AAChC,8CAA4B;AAC5B,gDAA8B;AAC9B,gDAA8B;AAC9B,+CAA6B;AAC7B,+CAA6B;AAC7B,gDAA8B;AAC9B,8CAA4B;AAC5B,4CAA0B;AAC1B,4CAA0B;AAC1B,+CAA6B;AAC7B,kDAAgC;AAChC,2DAAyC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValidationResult.d.ts","sourceRoot":"","sources":["../../src/types/ValidationResult.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC"}
|
|
1
|
+
{"version":3,"file":"ValidationResult.d.ts","sourceRoot":"","sources":["../../src/types/ValidationResult.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValidationSchema.d.ts","sourceRoot":"","sources":["../../src/types/ValidationSchema.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"ValidationSchema.d.ts","sourceRoot":"","sources":["../../src/types/ValidationSchema.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB"}
|