@fovestta2/validation-engine 1.0.5 → 1.1.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.
@@ -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;AAc9D,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,CAaxB;IAEH,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,gBAAgB,GAAG,gBAAgB;IAuCvE,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"}
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"}
@@ -12,6 +12,9 @@ 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");
15
18
  const DuplicateRule_1 = require("../rules/DuplicateRule");
16
19
  class Validator {
17
20
  static validate(value, schema) {
@@ -29,6 +32,9 @@ class Validator {
29
32
  const result = ruleImpl.validate(value, rule.params || {});
30
33
  if (!result.isValid) {
31
34
  result.message = rule.message || result.message;
35
+ if (rule.errorKey) {
36
+ result.errorKey = rule.errorKey;
37
+ }
32
38
  const priorityIndex = schema.errorPriority ? schema.errorPriority.indexOf(rule.name) : -1;
33
39
  errors.push({
34
40
  priority: priorityIndex === -1 ? 999 : priorityIndex,
@@ -69,6 +75,9 @@ Validator.ruleRegistry = new Map([
69
75
  [NumericRule_1.NumericRule.ruleName, NumericRule_1.NumericRule],
70
76
  [RangeRule_1.RangeRule.ruleName, RangeRule_1.RangeRule],
71
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],
72
81
  [DuplicateRule_1.DuplicateRule.ruleName, DuplicateRule_1.DuplicateRule],
73
82
  ]);
74
83
  //# sourceMappingURL=Validator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Validator.js","sourceRoot":"","sources":["../../src/engine/Validator.ts"],"names":[],"mappings":"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"}
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 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 = true, decimalPlaces, } = params || {};
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,IAAI,EACpB,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"}
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"}
@@ -8,6 +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";
11
14
  export * from "./DuplicateRule";
12
15
  export * from "./PasswordComplexityRule";
13
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;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,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"}
@@ -24,6 +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);
27
30
  __exportStar(require("./DuplicateRule"), exports);
28
31
  __exportStar(require("./PasswordComplexityRule"), exports);
29
32
  //# sourceMappingURL=index.js.map
@@ -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;AAC5B,kDAAgC;AAChC,2DAAyC"}
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"}
package/package.json CHANGED
@@ -1,32 +1,36 @@
1
- {
2
- "name": "@fovestta2/validation-engine",
3
- "version": "1.0.5",
4
- "description": "Platform-agnostic validation engine for Fovestta controls",
5
- "main": "dist/index.js",
6
- "exports": {
7
- ".": {
8
- "types": "./dist/index.d.ts",
9
- "default": "./dist/index.js"
10
- }
11
- },
12
- "types": "dist/index.d.ts",
13
- "scripts": {
14
- "build": "tsc",
15
- "watch": "tsc --watch",
16
- "clean": "rm -rf dist"
17
- },
18
- "keywords": [
19
- "validation",
20
- "fovestta",
21
- "typescript"
22
- ],
23
- "author": "Akshat Rastogi",
24
- "license": "UNLICENSED",
25
- "devDependencies": {
26
- "typescript": "^5.3.0",
27
- "@types/node": "^20.0.0"
28
- },
29
- "files": [
30
- "dist"
31
- ]
32
- }
1
+ {
2
+ "name": "@fovestta2/validation-engine",
3
+ "version": "1.1.0",
4
+ "publishConfig": {
5
+ "access": "public"
6
+ },
7
+ "description": "Platform-agnostic validation engine for Fovestta controls",
8
+ "main": "dist/index.js",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "default": "./dist/index.js"
13
+ }
14
+ },
15
+ "types": "dist/index.d.ts",
16
+ "scripts": {
17
+ "build": "tsc",
18
+ "watch": "tsc --watch",
19
+ "clean": "rm -rf dist"
20
+ },
21
+ "keywords": [
22
+ "validation",
23
+ "fovestta",
24
+ "typescript"
25
+ ],
26
+ "author": "Akshat Rastogi",
27
+ "license": "UNLICENSED",
28
+ "devDependencies": {
29
+ "@types/node": "^20.0.0",
30
+ "typescript": "^5.3.0"
31
+ },
32
+ "files": [
33
+ "dist"
34
+ ],
35
+ "gitHead": "55f3b628b0c2123c2f955a4f28c1bc5ac195075e"
36
+ }