valgen 5.14.1 → 5.15.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.
package/CHANGELOG.md CHANGED
@@ -1,6 +1,18 @@
1
1
  ## Changelog
2
2
 
3
- ### [v5.14.1](https://github.com/panates/valgen/compare/v5.14.0...v5.14.1) -
3
+ ### [v5.15.0](https://github.com/panates/valgen/compare/v5.14.1...v5.15.0) -
4
+
5
+ #### 🚀 New Features
6
+
7
+ - feat: Added discriminator validation to oneOf rule @Eray Hanoğlu
8
+ - feat: Added isEqual, isNotEqual rules @Eray Hanoğlu
9
+
10
+ #### 🛠 Refactoring and Updates
11
+
12
+ - refactor: Fixes and improvements @Eray Hanoğlu
13
+ - refactor: Removed union rule. Use oneOf rule instead @Eray Hanoğlu
14
+
15
+ ### [v5.14.1](https://github.com/panates/valgen/compare/v5.14.0...v5.14.1) - 21 April 2025
4
16
 
5
17
  #### 🪲 Fixes
6
18
 
@@ -30,6 +30,7 @@ tslib_1.__exportStar(require("./format-rules/is-vat-number.js"), exports);
30
30
  tslib_1.__exportStar(require("./format-rules/matches.js"), exports);
31
31
  tslib_1.__exportStar(require("./logical-rules/is-defined.js"), exports);
32
32
  tslib_1.__exportStar(require("./logical-rules/is-empty.js"), exports);
33
+ tslib_1.__exportStar(require("./logical-rules/is-equal.js"), exports);
33
34
  tslib_1.__exportStar(require("./logical-rules/range.js"), exports);
34
35
  tslib_1.__exportStar(require("./type-rules/is-any.js"), exports);
35
36
  tslib_1.__exportStar(require("./type-rules/is-array.js"), exports);
@@ -45,9 +46,10 @@ tslib_1.__exportStar(require("./type-rules/is-record.js"), exports);
45
46
  tslib_1.__exportStar(require("./type-rules/is-string.js"), exports);
46
47
  tslib_1.__exportStar(require("./type-rules/is-tuple.js"), exports);
47
48
  tslib_1.__exportStar(require("./type-rules/is-undefined.js"), exports);
49
+ tslib_1.__exportStar(require("./utility-rules/all-of.js"), exports);
48
50
  tslib_1.__exportStar(require("./utility-rules/exists.js"), exports);
49
51
  tslib_1.__exportStar(require("./utility-rules/get-length.js"), exports);
52
+ tslib_1.__exportStar(require("./utility-rules/one-of.js"), exports);
50
53
  tslib_1.__exportStar(require("./utility-rules/optional.js"), exports);
51
54
  tslib_1.__exportStar(require("./utility-rules/pipe.js"), exports);
52
55
  tslib_1.__exportStar(require("./utility-rules/required.js"), exports);
53
- tslib_1.__exportStar(require("./utility-rules/union.js"), exports);
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isEqual = isEqual;
4
+ exports.isNotEqual = isNotEqual;
5
+ const index_js_1 = require("../../core/index.js");
6
+ /**
7
+ *
8
+ * @validator isEqual
9
+ */
10
+ function isEqual(compare, options) {
11
+ return (0, index_js_1.validator)('isEqual', (input, context, _this) => {
12
+ if (input == null)
13
+ return input;
14
+ if (input !== compare)
15
+ context.fail(_this, `Value must be equal to "${compare}"`, input);
16
+ return input;
17
+ }, options);
18
+ }
19
+ /**
20
+ *
21
+ * @validator isNotEqual
22
+ */
23
+ function isNotEqual(compare, options) {
24
+ return (0, index_js_1.validator)('isNotEqual', (input, context, _this) => {
25
+ if (input == null)
26
+ return input;
27
+ if (input === compare) {
28
+ context.fail(_this, `Value must not be equal to "${compare}"`, input);
29
+ }
30
+ return input;
31
+ }, options);
32
+ }
@@ -7,6 +7,7 @@ exports.isGte = isGte;
7
7
  exports.isLt = isLt;
8
8
  exports.isLte = isLte;
9
9
  const index_js_1 = require("../../core/index.js");
10
+ const all_of_js_1 = require("../utility-rules/all-of.js");
10
11
  const get_length_js_1 = require("../utility-rules/get-length.js");
11
12
  const pipe_js_1 = require("../utility-rules/pipe.js");
12
13
  /**
@@ -131,7 +132,7 @@ function isLte(maxValue, options) {
131
132
  * Checks the length is at least "minValue"
132
133
  * @validator lengthMin
133
134
  */
134
- const lengthMin = (minValue) => (0, pipe_js_1.allOf)([
135
+ const lengthMin = (minValue) => (0, all_of_js_1.allOf)([
135
136
  (0, pipe_js_1.pipe)([
136
137
  (0, get_length_js_1.getLength)(),
137
138
  isGte(minValue, {
@@ -144,7 +145,7 @@ exports.lengthMin = lengthMin;
144
145
  * Checks if the length is at most "maxValue"
145
146
  * @validator lengthMax
146
147
  */
147
- const lengthMax = (maxValue) => (0, pipe_js_1.allOf)([
148
+ const lengthMax = (maxValue) => (0, all_of_js_1.allOf)([
148
149
  (0, pipe_js_1.pipe)([
149
150
  (0, get_length_js_1.getLength)(),
150
151
  isLte(maxValue, {
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.allOf = allOf;
4
+ const index_js_1 = require("../../core/index.js");
5
+ /**
6
+ * Test given value against to all codecs and returns original input
7
+ * @validator allOf
8
+ */
9
+ function allOf(rules) {
10
+ return (0, index_js_1.validator)('allOf', (input, context) => {
11
+ let i;
12
+ let c;
13
+ const l = rules.length;
14
+ for (i = 0; i < l; i++) {
15
+ c = rules[i];
16
+ c(input, context);
17
+ }
18
+ return input;
19
+ });
20
+ }
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.oneOf = oneOf;
4
+ const index_js_1 = require("../../core/index.js");
5
+ /**
6
+ *
7
+ */
8
+ function oneOf(rules) {
9
+ const l = rules.length;
10
+ return (0, index_js_1.validator)('union', (input, context, _this) => {
11
+ let i;
12
+ let c;
13
+ let discriminator;
14
+ let v;
15
+ let passed = false;
16
+ // Mock fail method to prevent errors
17
+ context.fail = () => (passed = false);
18
+ for (i = 0; i < l; i++) {
19
+ passed = true;
20
+ if (Array.isArray(rules[i])) {
21
+ c = rules[i][0];
22
+ discriminator = rules[i][1];
23
+ if (!(input &&
24
+ typeof input === 'object' &&
25
+ typeof discriminator === 'object')) {
26
+ continue;
27
+ }
28
+ try {
29
+ for (const k of Object.keys(discriminator)) {
30
+ discriminator[k](input[k], context);
31
+ if (!passed)
32
+ break;
33
+ }
34
+ if (!passed)
35
+ continue;
36
+ }
37
+ catch {
38
+ continue;
39
+ }
40
+ }
41
+ else
42
+ c = rules[i];
43
+ if (passed)
44
+ try {
45
+ v = c(input, context);
46
+ if (passed)
47
+ break;
48
+ }
49
+ catch {
50
+ //
51
+ }
52
+ }
53
+ // Restore fail method
54
+ delete context.fail;
55
+ if (passed)
56
+ return v;
57
+ context.fail(_this, `Value didn't match one of required rules`, input);
58
+ });
59
+ }
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.pipe = pipe;
4
- exports.allOf = allOf;
5
4
  const index_js_1 = require("../../core/index.js");
6
5
  /**
7
6
  *
@@ -27,19 +26,3 @@ function pipe(rules, options) {
27
26
  return returnValue;
28
27
  }, options);
29
28
  }
30
- /**
31
- * Test given value against to all codecs and returns original input
32
- * @validator allOf
33
- */
34
- function allOf(rules) {
35
- return (0, index_js_1.validator)('allOf', (input, context) => {
36
- let i;
37
- let c;
38
- const l = rules.length;
39
- for (i = 0; i < l; i++) {
40
- c = rules[i];
41
- c(input, context);
42
- }
43
- return input;
44
- });
45
- }
@@ -1 +1 @@
1
- {"root":["../../src/constants.ts","../../src/factories.ts","../../src/index.ts","../../src/core/constants.ts","../../src/core/context.ts","../../src/core/index.ts","../../src/core/types.ts","../../src/core/utilities.ts","../../src/core/validation-error.ts","../../src/core/validator.ts","../../src/helpers/object.utils.ts","../../src/helpers/omit-undefined.ts","../../src/helpers/string.utils.ts","../../src/rules/index.ts","../../src/rules/format-rules/is-alpha.ts","../../src/rules/format-rules/is-ascii.ts","../../src/rules/format-rules/is-base64.ts","../../src/rules/format-rules/is-btc-address.ts","../../src/rules/format-rules/is-credit-card.ts","../../src/rules/format-rules/is-decimal.ts","../../src/rules/format-rules/is-ean.ts","../../src/rules/format-rules/is-email.ts","../../src/rules/format-rules/is-eth-address.ts","../../src/rules/format-rules/is-fqdn.ts","../../src/rules/format-rules/is-hash.ts","../../src/rules/format-rules/is-hex-color.ts","../../src/rules/format-rules/is-hex.ts","../../src/rules/format-rules/is-iban.ts","../../src/rules/format-rules/is-ip.ts","../../src/rules/format-rules/is-issn.ts","../../src/rules/format-rules/is-jwt.ts","../../src/rules/format-rules/is-lowercase.ts","../../src/rules/format-rules/is-mac-address.ts","../../src/rules/format-rules/is-mobile-phone.ts","../../src/rules/format-rules/is-object-id.ts","../../src/rules/format-rules/is-passport-number.ts","../../src/rules/format-rules/is-port.ts","../../src/rules/format-rules/is-url.ts","../../src/rules/format-rules/is-uuid.ts","../../src/rules/format-rules/is-vat-number.ts","../../src/rules/format-rules/matches.ts","../../src/rules/logical-rules/is-defined.ts","../../src/rules/logical-rules/is-empty.ts","../../src/rules/logical-rules/range.ts","../../src/rules/type-rules/is-any.ts","../../src/rules/type-rules/is-array.ts","../../src/rules/type-rules/is-bigint.ts","../../src/rules/type-rules/is-boolean.ts","../../src/rules/type-rules/is-date.ts","../../src/rules/type-rules/is-enum.ts","../../src/rules/type-rules/is-integer.ts","../../src/rules/type-rules/is-null.ts","../../src/rules/type-rules/is-number.ts","../../src/rules/type-rules/is-object.ts","../../src/rules/type-rules/is-record.ts","../../src/rules/type-rules/is-string.ts","../../src/rules/type-rules/is-tuple.ts","../../src/rules/type-rules/is-undefined.ts","../../src/rules/utility-rules/exists.ts","../../src/rules/utility-rules/get-length.ts","../../src/rules/utility-rules/optional.ts","../../src/rules/utility-rules/pipe.ts","../../src/rules/utility-rules/required.ts","../../src/rules/utility-rules/union.ts"],"version":"5.8.3"}
1
+ {"root":["../../src/constants.ts","../../src/factories.ts","../../src/index.ts","../../src/core/constants.ts","../../src/core/context.ts","../../src/core/index.ts","../../src/core/types.ts","../../src/core/utilities.ts","../../src/core/validation-error.ts","../../src/core/validator.ts","../../src/helpers/object.utils.ts","../../src/helpers/omit-undefined.ts","../../src/helpers/string.utils.ts","../../src/rules/index.ts","../../src/rules/format-rules/is-alpha.ts","../../src/rules/format-rules/is-ascii.ts","../../src/rules/format-rules/is-base64.ts","../../src/rules/format-rules/is-btc-address.ts","../../src/rules/format-rules/is-credit-card.ts","../../src/rules/format-rules/is-decimal.ts","../../src/rules/format-rules/is-ean.ts","../../src/rules/format-rules/is-email.ts","../../src/rules/format-rules/is-eth-address.ts","../../src/rules/format-rules/is-fqdn.ts","../../src/rules/format-rules/is-hash.ts","../../src/rules/format-rules/is-hex-color.ts","../../src/rules/format-rules/is-hex.ts","../../src/rules/format-rules/is-iban.ts","../../src/rules/format-rules/is-ip.ts","../../src/rules/format-rules/is-issn.ts","../../src/rules/format-rules/is-jwt.ts","../../src/rules/format-rules/is-lowercase.ts","../../src/rules/format-rules/is-mac-address.ts","../../src/rules/format-rules/is-mobile-phone.ts","../../src/rules/format-rules/is-object-id.ts","../../src/rules/format-rules/is-passport-number.ts","../../src/rules/format-rules/is-port.ts","../../src/rules/format-rules/is-url.ts","../../src/rules/format-rules/is-uuid.ts","../../src/rules/format-rules/is-vat-number.ts","../../src/rules/format-rules/matches.ts","../../src/rules/logical-rules/is-defined.ts","../../src/rules/logical-rules/is-empty.ts","../../src/rules/logical-rules/is-equal.ts","../../src/rules/logical-rules/range.ts","../../src/rules/type-rules/is-any.ts","../../src/rules/type-rules/is-array.ts","../../src/rules/type-rules/is-bigint.ts","../../src/rules/type-rules/is-boolean.ts","../../src/rules/type-rules/is-date.ts","../../src/rules/type-rules/is-enum.ts","../../src/rules/type-rules/is-integer.ts","../../src/rules/type-rules/is-null.ts","../../src/rules/type-rules/is-number.ts","../../src/rules/type-rules/is-object.ts","../../src/rules/type-rules/is-record.ts","../../src/rules/type-rules/is-string.ts","../../src/rules/type-rules/is-tuple.ts","../../src/rules/type-rules/is-undefined.ts","../../src/rules/utility-rules/all-of.ts","../../src/rules/utility-rules/exists.ts","../../src/rules/utility-rules/get-length.ts","../../src/rules/utility-rules/one-of.ts","../../src/rules/utility-rules/optional.ts","../../src/rules/utility-rules/pipe.ts","../../src/rules/utility-rules/required.ts"],"version":"5.8.3"}
@@ -27,6 +27,7 @@ export * from './format-rules/is-vat-number.js';
27
27
  export * from './format-rules/matches.js';
28
28
  export * from './logical-rules/is-defined.js';
29
29
  export * from './logical-rules/is-empty.js';
30
+ export * from './logical-rules/is-equal.js';
30
31
  export * from './logical-rules/range.js';
31
32
  export * from './type-rules/is-any.js';
32
33
  export * from './type-rules/is-array.js';
@@ -42,9 +43,10 @@ export * from './type-rules/is-record.js';
42
43
  export * from './type-rules/is-string.js';
43
44
  export * from './type-rules/is-tuple.js';
44
45
  export * from './type-rules/is-undefined.js';
46
+ export * from './utility-rules/all-of.js';
45
47
  export * from './utility-rules/exists.js';
46
48
  export * from './utility-rules/get-length.js';
49
+ export * from './utility-rules/one-of.js';
47
50
  export * from './utility-rules/optional.js';
48
51
  export * from './utility-rules/pipe.js';
49
52
  export * from './utility-rules/required.js';
50
- export * from './utility-rules/union.js';
@@ -0,0 +1,28 @@
1
+ import { validator, } from '../../core/index.js';
2
+ /**
3
+ *
4
+ * @validator isEqual
5
+ */
6
+ export function isEqual(compare, options) {
7
+ return validator('isEqual', (input, context, _this) => {
8
+ if (input == null)
9
+ return input;
10
+ if (input !== compare)
11
+ context.fail(_this, `Value must be equal to "${compare}"`, input);
12
+ return input;
13
+ }, options);
14
+ }
15
+ /**
16
+ *
17
+ * @validator isNotEqual
18
+ */
19
+ export function isNotEqual(compare, options) {
20
+ return validator('isNotEqual', (input, context, _this) => {
21
+ if (input == null)
22
+ return input;
23
+ if (input === compare) {
24
+ context.fail(_this, `Value must not be equal to "${compare}"`, input);
25
+ }
26
+ return input;
27
+ }, options);
28
+ }
@@ -1,6 +1,7 @@
1
1
  import { validator, } from '../../core/index.js';
2
+ import { allOf } from '../utility-rules/all-of.js';
2
3
  import { getLength } from '../utility-rules/get-length.js';
3
- import { allOf, pipe } from '../utility-rules/pipe.js';
4
+ import { pipe } from '../utility-rules/pipe.js';
4
5
  /**
5
6
  * Checks if value is between minValue and maxValue
6
7
  * @validator range
@@ -0,0 +1,17 @@
1
+ import { validator } from '../../core/index.js';
2
+ /**
3
+ * Test given value against to all codecs and returns original input
4
+ * @validator allOf
5
+ */
6
+ export function allOf(rules) {
7
+ return validator('allOf', (input, context) => {
8
+ let i;
9
+ let c;
10
+ const l = rules.length;
11
+ for (i = 0; i < l; i++) {
12
+ c = rules[i];
13
+ c(input, context);
14
+ }
15
+ return input;
16
+ });
17
+ }
@@ -0,0 +1,56 @@
1
+ import { validator } from '../../core/index.js';
2
+ /**
3
+ *
4
+ */
5
+ export function oneOf(rules) {
6
+ const l = rules.length;
7
+ return validator('union', (input, context, _this) => {
8
+ let i;
9
+ let c;
10
+ let discriminator;
11
+ let v;
12
+ let passed = false;
13
+ // Mock fail method to prevent errors
14
+ context.fail = () => (passed = false);
15
+ for (i = 0; i < l; i++) {
16
+ passed = true;
17
+ if (Array.isArray(rules[i])) {
18
+ c = rules[i][0];
19
+ discriminator = rules[i][1];
20
+ if (!(input &&
21
+ typeof input === 'object' &&
22
+ typeof discriminator === 'object')) {
23
+ continue;
24
+ }
25
+ try {
26
+ for (const k of Object.keys(discriminator)) {
27
+ discriminator[k](input[k], context);
28
+ if (!passed)
29
+ break;
30
+ }
31
+ if (!passed)
32
+ continue;
33
+ }
34
+ catch {
35
+ continue;
36
+ }
37
+ }
38
+ else
39
+ c = rules[i];
40
+ if (passed)
41
+ try {
42
+ v = c(input, context);
43
+ if (passed)
44
+ break;
45
+ }
46
+ catch {
47
+ //
48
+ }
49
+ }
50
+ // Restore fail method
51
+ delete context.fail;
52
+ if (passed)
53
+ return v;
54
+ context.fail(_this, `Value didn't match one of required rules`, input);
55
+ });
56
+ }
@@ -23,19 +23,3 @@ export function pipe(rules, options) {
23
23
  return returnValue;
24
24
  }, options);
25
25
  }
26
- /**
27
- * Test given value against to all codecs and returns original input
28
- * @validator allOf
29
- */
30
- export function allOf(rules) {
31
- return validator('allOf', (input, context) => {
32
- let i;
33
- let c;
34
- const l = rules.length;
35
- for (i = 0; i < l; i++) {
36
- c = rules[i];
37
- c(input, context);
38
- }
39
- return input;
40
- });
41
- }
@@ -1 +1 @@
1
- {"root":["../../src/constants.ts","../../src/factories.ts","../../src/index.ts","../../src/core/constants.ts","../../src/core/context.ts","../../src/core/index.ts","../../src/core/types.ts","../../src/core/utilities.ts","../../src/core/validation-error.ts","../../src/core/validator.ts","../../src/helpers/object.utils.ts","../../src/helpers/omit-undefined.ts","../../src/helpers/string.utils.ts","../../src/rules/index.ts","../../src/rules/format-rules/is-alpha.ts","../../src/rules/format-rules/is-ascii.ts","../../src/rules/format-rules/is-base64.ts","../../src/rules/format-rules/is-btc-address.ts","../../src/rules/format-rules/is-credit-card.ts","../../src/rules/format-rules/is-decimal.ts","../../src/rules/format-rules/is-ean.ts","../../src/rules/format-rules/is-email.ts","../../src/rules/format-rules/is-eth-address.ts","../../src/rules/format-rules/is-fqdn.ts","../../src/rules/format-rules/is-hash.ts","../../src/rules/format-rules/is-hex-color.ts","../../src/rules/format-rules/is-hex.ts","../../src/rules/format-rules/is-iban.ts","../../src/rules/format-rules/is-ip.ts","../../src/rules/format-rules/is-issn.ts","../../src/rules/format-rules/is-jwt.ts","../../src/rules/format-rules/is-lowercase.ts","../../src/rules/format-rules/is-mac-address.ts","../../src/rules/format-rules/is-mobile-phone.ts","../../src/rules/format-rules/is-object-id.ts","../../src/rules/format-rules/is-passport-number.ts","../../src/rules/format-rules/is-port.ts","../../src/rules/format-rules/is-url.ts","../../src/rules/format-rules/is-uuid.ts","../../src/rules/format-rules/is-vat-number.ts","../../src/rules/format-rules/matches.ts","../../src/rules/logical-rules/is-defined.ts","../../src/rules/logical-rules/is-empty.ts","../../src/rules/logical-rules/range.ts","../../src/rules/type-rules/is-any.ts","../../src/rules/type-rules/is-array.ts","../../src/rules/type-rules/is-bigint.ts","../../src/rules/type-rules/is-boolean.ts","../../src/rules/type-rules/is-date.ts","../../src/rules/type-rules/is-enum.ts","../../src/rules/type-rules/is-integer.ts","../../src/rules/type-rules/is-null.ts","../../src/rules/type-rules/is-number.ts","../../src/rules/type-rules/is-object.ts","../../src/rules/type-rules/is-record.ts","../../src/rules/type-rules/is-string.ts","../../src/rules/type-rules/is-tuple.ts","../../src/rules/type-rules/is-undefined.ts","../../src/rules/utility-rules/exists.ts","../../src/rules/utility-rules/get-length.ts","../../src/rules/utility-rules/optional.ts","../../src/rules/utility-rules/pipe.ts","../../src/rules/utility-rules/required.ts","../../src/rules/utility-rules/union.ts"],"version":"5.8.3"}
1
+ {"root":["../../src/constants.ts","../../src/factories.ts","../../src/index.ts","../../src/core/constants.ts","../../src/core/context.ts","../../src/core/index.ts","../../src/core/types.ts","../../src/core/utilities.ts","../../src/core/validation-error.ts","../../src/core/validator.ts","../../src/helpers/object.utils.ts","../../src/helpers/omit-undefined.ts","../../src/helpers/string.utils.ts","../../src/rules/index.ts","../../src/rules/format-rules/is-alpha.ts","../../src/rules/format-rules/is-ascii.ts","../../src/rules/format-rules/is-base64.ts","../../src/rules/format-rules/is-btc-address.ts","../../src/rules/format-rules/is-credit-card.ts","../../src/rules/format-rules/is-decimal.ts","../../src/rules/format-rules/is-ean.ts","../../src/rules/format-rules/is-email.ts","../../src/rules/format-rules/is-eth-address.ts","../../src/rules/format-rules/is-fqdn.ts","../../src/rules/format-rules/is-hash.ts","../../src/rules/format-rules/is-hex-color.ts","../../src/rules/format-rules/is-hex.ts","../../src/rules/format-rules/is-iban.ts","../../src/rules/format-rules/is-ip.ts","../../src/rules/format-rules/is-issn.ts","../../src/rules/format-rules/is-jwt.ts","../../src/rules/format-rules/is-lowercase.ts","../../src/rules/format-rules/is-mac-address.ts","../../src/rules/format-rules/is-mobile-phone.ts","../../src/rules/format-rules/is-object-id.ts","../../src/rules/format-rules/is-passport-number.ts","../../src/rules/format-rules/is-port.ts","../../src/rules/format-rules/is-url.ts","../../src/rules/format-rules/is-uuid.ts","../../src/rules/format-rules/is-vat-number.ts","../../src/rules/format-rules/matches.ts","../../src/rules/logical-rules/is-defined.ts","../../src/rules/logical-rules/is-empty.ts","../../src/rules/logical-rules/is-equal.ts","../../src/rules/logical-rules/range.ts","../../src/rules/type-rules/is-any.ts","../../src/rules/type-rules/is-array.ts","../../src/rules/type-rules/is-bigint.ts","../../src/rules/type-rules/is-boolean.ts","../../src/rules/type-rules/is-date.ts","../../src/rules/type-rules/is-enum.ts","../../src/rules/type-rules/is-integer.ts","../../src/rules/type-rules/is-null.ts","../../src/rules/type-rules/is-number.ts","../../src/rules/type-rules/is-object.ts","../../src/rules/type-rules/is-record.ts","../../src/rules/type-rules/is-string.ts","../../src/rules/type-rules/is-tuple.ts","../../src/rules/type-rules/is-undefined.ts","../../src/rules/utility-rules/all-of.ts","../../src/rules/utility-rules/exists.ts","../../src/rules/utility-rules/get-length.ts","../../src/rules/utility-rules/one-of.ts","../../src/rules/utility-rules/optional.ts","../../src/rules/utility-rules/pipe.ts","../../src/rules/utility-rules/required.ts"],"version":"5.8.3"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "valgen",
3
3
  "description": "Fast runtime type validator, converter and io (encoding/decoding) library",
4
- "version": "5.14.1",
4
+ "version": "5.15.0",
5
5
  "author": "Panates",
6
6
  "license": "MIT",
7
7
  "dependencies": {
@@ -27,6 +27,7 @@ export * from './format-rules/is-vat-number.js';
27
27
  export * from './format-rules/matches.js';
28
28
  export * from './logical-rules/is-defined.js';
29
29
  export * from './logical-rules/is-empty.js';
30
+ export * from './logical-rules/is-equal.js';
30
31
  export * from './logical-rules/range.js';
31
32
  export * from './type-rules/is-any.js';
32
33
  export * from './type-rules/is-array.js';
@@ -42,9 +43,10 @@ export * from './type-rules/is-record.js';
42
43
  export * from './type-rules/is-string.js';
43
44
  export * from './type-rules/is-tuple.js';
44
45
  export * from './type-rules/is-undefined.js';
46
+ export * from './utility-rules/all-of.js';
45
47
  export * from './utility-rules/exists.js';
46
48
  export * from './utility-rules/get-length.js';
49
+ export * from './utility-rules/one-of.js';
47
50
  export * from './utility-rules/optional.js';
48
51
  export * from './utility-rules/pipe.js';
49
52
  export * from './utility-rules/required.js';
50
- export * from './utility-rules/union.js';
@@ -0,0 +1,11 @@
1
+ import { type ValidationOptions } from '../../core/index.js';
2
+ /**
3
+ *
4
+ * @validator isEqual
5
+ */
6
+ export declare function isEqual<T>(compare: T, options?: ValidationOptions): import("../../core/validator.js").Validator<any, any, import("../../core/types.js").ExecutionOptions>;
7
+ /**
8
+ *
9
+ * @validator isNotEqual
10
+ */
11
+ export declare function isNotEqual(compare: any, options?: ValidationOptions): import("../../core/validator.js").Validator<any, any, import("../../core/types.js").ExecutionOptions>;
@@ -0,0 +1,6 @@
1
+ import { type Validator } from '../../core/index.js';
2
+ /**
3
+ * Test given value against to all codecs and returns original input
4
+ * @validator allOf
5
+ */
6
+ export declare function allOf<T = any>(rules: Validator[]): Validator<T>;
@@ -0,0 +1,7 @@
1
+ import { type Validator } from '../../core/index.js';
2
+ type DiscriminatorRecord = Record<string, Validator>;
3
+ /**
4
+ *
5
+ */
6
+ export declare function oneOf(rules: (Validator | [Validator, DiscriminatorRecord])[]): Validator<unknown, any, import("../../core/types.js").ExecutionOptions>;
7
+ export {};
@@ -7,8 +7,3 @@ export interface PipeOptions extends ValidationOptions {
7
7
  * @validator pipe
8
8
  */
9
9
  export declare function pipe<T>(rules: Validator[], options?: PipeOptions): Validator<T>;
10
- /**
11
- * Test given value against to all codecs and returns original input
12
- * @validator allOf
13
- */
14
- export declare function allOf<T = any>(rules: Validator[]): Validator<T>;
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.union = union;
4
- const index_js_1 = require("../../core/index.js");
5
- /**
6
- *
7
- */
8
- function union(codecs) {
9
- const l = codecs.length;
10
- return (0, index_js_1.validator)('union', (input, context, _this) => {
11
- let i;
12
- let c;
13
- let v;
14
- let passed = false;
15
- // Mock fail method to prevent errors
16
- context.fail = () => (passed = false);
17
- for (i = 0; i < l; i++) {
18
- c = codecs[i];
19
- try {
20
- passed = true;
21
- v = c(input, context);
22
- if (passed)
23
- break;
24
- }
25
- catch {
26
- //
27
- }
28
- }
29
- // Restore fail method
30
- delete context.fail;
31
- if (passed)
32
- return v;
33
- context.fail(_this, `Value didn't match any on union rules`, input);
34
- });
35
- }
@@ -1,32 +0,0 @@
1
- import { validator, } from '../../core/index.js';
2
- /**
3
- *
4
- */
5
- export function union(codecs) {
6
- const l = codecs.length;
7
- return validator('union', (input, context, _this) => {
8
- let i;
9
- let c;
10
- let v;
11
- let passed = false;
12
- // Mock fail method to prevent errors
13
- context.fail = () => (passed = false);
14
- for (i = 0; i < l; i++) {
15
- c = codecs[i];
16
- try {
17
- passed = true;
18
- v = c(input, context);
19
- if (passed)
20
- break;
21
- }
22
- catch {
23
- //
24
- }
25
- }
26
- // Restore fail method
27
- delete context.fail;
28
- if (passed)
29
- return v;
30
- context.fail(_this, `Value didn't match any on union rules`, input);
31
- });
32
- }
@@ -1,5 +0,0 @@
1
- import { type Validator } from '../../core/index.js';
2
- /**
3
- *
4
- */
5
- export declare function union<T, I>(codecs: Validator<T, I>[]): Validator<T, I, import("../../core/types.js").ExecutionOptions>;