justus 0.5.2 → 0.5.4

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 (70) hide show
  1. package/dist/dts-generator.cjs +22 -7
  2. package/dist/dts-generator.cjs.map +1 -1
  3. package/dist/dts-generator.mjs +22 -7
  4. package/dist/dts-generator.mjs.map +1 -1
  5. package/dist/extra/arn.cjs +1 -1
  6. package/dist/extra/arn.cjs.map +1 -1
  7. package/dist/extra/arn.mjs +1 -1
  8. package/dist/extra/arn.mjs.map +1 -1
  9. package/dist/index.cjs +13 -2
  10. package/dist/index.cjs.map +1 -1
  11. package/dist/index.d.ts +12 -0
  12. package/dist/index.mjs +9 -2
  13. package/dist/index.mjs.map +1 -1
  14. package/dist/types.cjs +0 -7
  15. package/dist/types.cjs.map +1 -1
  16. package/dist/types.d.ts +11 -13
  17. package/dist/types.mjs +0 -6
  18. package/dist/types.mjs.map +1 -1
  19. package/dist/utilities.cjs +1 -0
  20. package/dist/utilities.cjs.map +1 -1
  21. package/dist/utilities.mjs +1 -0
  22. package/dist/utilities.mjs.map +1 -1
  23. package/dist/validators/bigint.cjs +146 -0
  24. package/dist/validators/bigint.cjs.map +6 -0
  25. package/dist/validators/bigint.d.ts +46 -0
  26. package/dist/validators/bigint.mjs +118 -0
  27. package/dist/validators/bigint.mjs.map +6 -0
  28. package/dist/validators/boolean.cjs +1 -1
  29. package/dist/validators/boolean.cjs.map +1 -1
  30. package/dist/validators/boolean.mjs +1 -1
  31. package/dist/validators/boolean.mjs.map +1 -1
  32. package/dist/validators/constant.cjs +2 -1
  33. package/dist/validators/constant.cjs.map +1 -1
  34. package/dist/validators/constant.d.ts +2 -2
  35. package/dist/validators/constant.mjs +2 -1
  36. package/dist/validators/constant.mjs.map +1 -1
  37. package/dist/validators/never.cjs +1 -1
  38. package/dist/validators/never.cjs.map +1 -1
  39. package/dist/validators/never.mjs +2 -2
  40. package/dist/validators/never.mjs.map +1 -1
  41. package/dist/validators/number.cjs +5 -5
  42. package/dist/validators/number.cjs.map +1 -1
  43. package/dist/validators/number.mjs +5 -5
  44. package/dist/validators/number.mjs.map +1 -1
  45. package/dist/validators/object.cjs +7 -5
  46. package/dist/validators/object.cjs.map +1 -1
  47. package/dist/validators/object.mjs +8 -6
  48. package/dist/validators/object.mjs.map +1 -1
  49. package/dist/validators/optional.cjs +1 -1
  50. package/dist/validators/optional.cjs.map +1 -1
  51. package/dist/validators/optional.mjs +2 -2
  52. package/dist/validators/optional.mjs.map +1 -1
  53. package/dist/validators/string.cjs +2 -2
  54. package/dist/validators/string.cjs.map +1 -1
  55. package/dist/validators/string.mjs +2 -2
  56. package/dist/validators/string.mjs.map +1 -1
  57. package/package.json +3 -8
  58. package/src/dts-generator.ts +23 -6
  59. package/src/extra/arn.ts +1 -1
  60. package/src/index.ts +20 -2
  61. package/src/types.ts +11 -16
  62. package/src/utilities.ts +1 -0
  63. package/src/validators/bigint.ts +147 -0
  64. package/src/validators/boolean.ts +1 -1
  65. package/src/validators/constant.ts +4 -3
  66. package/src/validators/never.ts +2 -2
  67. package/src/validators/number.ts +5 -5
  68. package/src/validators/object.ts +8 -7
  69. package/src/validators/optional.ts +2 -2
  70. package/src/validators/string.ts +2 -2
package/dist/types.d.ts CHANGED
@@ -18,11 +18,9 @@ export interface ValidationOptions {
18
18
  stripOptionalNulls?: boolean;
19
19
  /** Ignore and strip forbidden (`never`) properties from objects (default: `false`) */
20
20
  stripForbiddenProperties?: boolean;
21
+ /** Perform a _partial_ validation, treating all properties as optional (default: `false`) */
22
+ partialValidation?: boolean;
21
23
  }
22
- /**
23
- * Default validation options.
24
- */
25
- export declare const defaultValidationOptions: Readonly<Required<ValidationOptions>>;
26
24
  /**
27
25
  * A `Validator` is an object capable of validating a given _value_ and
28
26
  * (possibly) converting it the required type `T`.
@@ -72,20 +70,20 @@ export declare abstract class AbstractValidator<T, I = T> implements Validator<T
72
70
  * Those are:
73
71
  *
74
72
  * * A `Validator` instance or a _zero-arguments_ function returning one
75
- * * A `Tuple` or a `Schema`, validated as arrays or object
76
- * * Either `null`, a `boolean`, a `number` or a `string` for constants
73
+ * * A `Tuple` or a `Schema`, validated as arrays or objects
74
+ * * Either `null`, a `boolean`, a `number`, a `bigint` or a `string` for constants
77
75
  */
78
76
  export type Validation = Validator | // Validator instances
79
77
  Tuple | Schema | // Tuples or schemas (arrays, objects)
80
- null | boolean | number | string;
78
+ null | boolean | bigint | number | string;
81
79
  /**
82
80
  * Infer the type returned by a `Validation` when validating.
83
81
  */
84
- export type InferValidation<V> = V extends Validator<infer T, any> ? T : V extends undefined ? V : V extends boolean ? V : V extends number ? V : V extends string ? V : V extends null ? V : V extends Tuple ? InferTuple<V> : InferSchema<V>;
82
+ export type InferValidation<V> = V extends Validator<infer T, any> ? T : V extends undefined ? V : V extends boolean ? V : V extends bigint ? V : V extends number ? V : V extends string ? V : V extends null ? V : V extends Tuple ? InferTuple<V> : InferSchema<V>;
85
83
  /**
86
84
  * Infer the type compatible with a `Validation`'s input.
87
85
  */
88
- export type InferInput<V> = V extends Validator<any, infer T> ? T : V extends undefined ? V : V extends boolean ? V : V extends number ? V : V extends string ? V : V extends null ? V : V extends Tuple ? InferInputTuple<V> : InferInputSchema<V>;
86
+ export type InferInput<V> = V extends Validator<any, infer T> ? T : V extends undefined ? V : V extends boolean ? V : V extends bigint ? V : V extends number ? V : V extends string ? V : V extends null ? V : V extends Tuple ? InferInputTuple<V> : InferInputSchema<V>;
89
87
  /** Infer the type validated by a `Validation` or `TupleRestParameter` */
90
88
  export type InferValidationOrTupleRest<T> = T extends TupleRestParameter<infer X, any> ? X : T extends Validation ? InferValidation<T> : never;
91
89
  /** Infer the input type for a `Validation` or `TupleRestParameter` */
@@ -155,9 +153,9 @@ export type InferSchema<S> = S extends AdditionalProperties<Validator<infer V>>
155
153
  } & InferSchema2<S> : InferSchema2<S>;
156
154
  /** Infer the property types described by a `Schema` */
157
155
  export type InferSchema2<S> = {
158
- [key in keyof S as key extends string ? key : never]?: InferValidation<S[key]>;
156
+ -readonly [key in keyof S as key extends string ? key : never]?: InferValidation<S[key]>;
159
157
  } & {
160
- [key in keyof S as key extends string ? undefined extends InferValidation<S[key]> ? never : key : never]-?: InferValidation<S[key]>;
158
+ -readonly [key in keyof S as key extends string ? undefined extends InferValidation<S[key]> ? never : key : never]-?: InferValidation<S[key]>;
161
159
  };
162
160
  /** Infer the input type compatible with a `Schema` */
163
161
  export type InferInputSchema<S> = S extends AdditionalProperties<Validator<any, infer X>> ? {
@@ -165,9 +163,9 @@ export type InferInputSchema<S> = S extends AdditionalProperties<Validator<any,
165
163
  } & InferInputSchema2<S> : InferInputSchema2<S>;
166
164
  /** Infer the input type of the properties described by a `Schema` */
167
165
  export type InferInputSchema2<S> = {
168
- [key in keyof S as key extends string ? key : never]?: InferInput<S[key]>;
166
+ -readonly [key in keyof S as key extends string ? key : never]?: InferInput<S[key]>;
169
167
  } & {
170
- [key in keyof S as key extends string ? InferInput<S[key]> extends never ? never : undefined extends InferInput<S[key]> ? never : key : never]-?: InferInput<S[key]>;
168
+ -readonly [key in keyof S as key extends string ? InferInput<S[key]> extends never ? never : undefined extends InferInput<S[key]> ? never : key : never]-?: InferInput<S[key]>;
171
169
  };
172
170
  /** Utility type to infer primitive branding according to a string */
173
171
  export type Branding<S extends string> = {
package/dist/types.mjs CHANGED
@@ -4,11 +4,6 @@ Object.defineProperties(Symbol, {
4
4
  justusRestValidator: { value: Symbol.for("justus.restValidator") },
5
5
  justusAdditionalValidator: { value: Symbol.for("justus.additionalValidator") }
6
6
  });
7
- var defaultValidationOptions = {
8
- stripAdditionalProperties: false,
9
- stripForbiddenProperties: false,
10
- stripOptionalNulls: false
11
- };
12
7
  function makeValidatorFactory(validator, factory) {
13
8
  return Object.assign(factory, {
14
9
  optional: validator.optional,
@@ -29,7 +24,6 @@ var AbstractValidator = class {
29
24
  };
30
25
  export {
31
26
  AbstractValidator,
32
- defaultValidationOptions,
33
27
  makeValidatorFactory
34
28
  };
35
29
  //# sourceMappingURL=types.mjs.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/types.ts"],
4
- "mappings": ";AAgBA,OAAO,iBAAiB,QAAQ;AAAA,EAC9B,iBAAiB,EAAE,OAAO,OAAO,IAAI,kBAAkB,EAAE;AAAA,EACzD,qBAAqB,EAAE,OAAO,OAAO,IAAI,sBAAsB,EAAE;AAAA,EACjE,2BAA2B,EAAE,OAAO,OAAO,IAAI,4BAA4B,EAAE;AAC/E,CAAC;AAqBM,IAAM,2BAAkE;AAAA,EAC7E,2BAA2B;AAAA,EAC3B,0BAA0B;AAAA,EAC1B,oBAAoB;AACtB;AAkCO,SAAS,qBAGd,WAAc,SAAmB;AACjC,SAAO,OAAO,OAAO,SAAS;AAAA,IAC5B,UAAU,UAAU;AAAA,IACpB,cAAc,UAAU;AAAA,IACxB,UAAU,UAAU,SAAS,KAAK,SAAS;AAAA,IAC3C,CAAC,OAAO,QAAQ,GAAG,UAAU,OAAO,QAAQ,EAAE,KAAK,SAAS;AAAA,IAC5D,CAAC,OAAO,eAAe,GAAG;AAAA,EAC5B,CAAC;AACH;AAMO,IAAe,oBAAf,MACwD;AAAA,EAC7D,CAAC,OAAO,eAAe,IAAI;AAAA,EAE3B,WAAoB;AAAA,EACpB,eAA8B;AAAA;AAAA,EAM9B,EAAG,OAAO,QAAQ,IAAyC;AACzD,UAAM,EAAE,CAAC,OAAO,mBAAmB,GAAG,KAAK;AAAA,EAC7C;AACF;",
4
+ "mappings": ";AAgBA,OAAO,iBAAiB,QAAQ;AAAA,EAC9B,iBAAiB,EAAE,OAAO,OAAO,IAAI,kBAAkB,EAAE;AAAA,EACzD,qBAAqB,EAAE,OAAO,OAAO,IAAI,sBAAsB,EAAE;AAAA,EACjE,2BAA2B,EAAE,OAAO,OAAO,IAAI,4BAA4B,EAAE;AAC/E,CAAC;AAoDM,SAAS,qBAGd,WAAc,SAAmB;AACjC,SAAO,OAAO,OAAO,SAAS;AAAA,IAC5B,UAAU,UAAU;AAAA,IACpB,cAAc,UAAU;AAAA,IACxB,UAAU,UAAU,SAAS,KAAK,SAAS;AAAA,IAC3C,CAAC,OAAO,QAAQ,GAAG,UAAU,OAAO,QAAQ,EAAE,KAAK,SAAS;AAAA,IAC5D,CAAC,OAAO,eAAe,GAAG;AAAA,EAC5B,CAAC;AACH;AAMO,IAAe,oBAAf,MACwD;AAAA,EAC7D,CAAC,OAAO,eAAe,IAAI;AAAA,EAE3B,WAAoB;AAAA,EACpB,eAA8B;AAAA;AAAA,EAM9B,EAAG,OAAO,QAAQ,IAAyC;AACzD,UAAM,EAAE,CAAC,OAAO,mBAAmB,GAAG,KAAK;AAAA,EAC7C;AACF;",
5
5
  "names": []
6
6
  }
@@ -34,6 +34,7 @@ function getValidator(validation) {
34
34
  }
35
35
  switch (typeof validation) {
36
36
  case "boolean":
37
+ case "bigint":
37
38
  case "string":
38
39
  case "number":
39
40
  return new (import_registry.registry.get("constant"))(validation);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/utilities.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA6B;AAC7B,sBAAyB;AASlB,SAAS,aAAa,YAAmC;AAC9D,kCAAa,eAAe,QAAW,uCAAuC;AAG9E,MAAI,eAAe;AAAM,WAAO,KAAK,yBAAS,IAAI,UAAU,GAAG,IAAI;AAGnE,MAAW,WAAY,OAAO,eAAe,GAAG;AAC9C,WAAc,WAAY,OAAO,eAAe;AAAA,EAClD;AAGA,UAAQ,OAAO,YAAY;AAAA,IAEzB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO,KAAK,yBAAS,IAAI,UAAU,GAAG,UAAU;AAAA,IAGlD,KAAK;AAEH,UAAI,MAAM,QAAQ,UAAU;AAAG,eAAO,KAAK,yBAAS,IAAI,OAAO,GAAG,UAAU;AAE5E,aAAO,KAAK,yBAAS,IAAI,QAAQ,GAAG,UAAoB;AAAA,IAG1D;AACE,YAAM,IAAI,UAAU,4BAA4B,OAAO,UAAU,GAAG;AAAA,EACxE;AACF;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA6B;AAC7B,sBAAyB;AASlB,SAAS,aAAa,YAAmC;AAC9D,kCAAa,eAAe,QAAW,uCAAuC;AAG9E,MAAI,eAAe;AAAM,WAAO,KAAK,yBAAS,IAAI,UAAU,GAAG,IAAI;AAGnE,MAAW,WAAY,OAAO,eAAe,GAAG;AAC9C,WAAc,WAAY,OAAO,eAAe;AAAA,EAClD;AAGA,UAAQ,OAAO,YAAY;AAAA,IAEzB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO,KAAK,yBAAS,IAAI,UAAU,GAAG,UAAU;AAAA,IAGlD,KAAK;AAEH,UAAI,MAAM,QAAQ,UAAU;AAAG,eAAO,KAAK,yBAAS,IAAI,OAAO,GAAG,UAAU;AAE5E,aAAO,KAAK,yBAAS,IAAI,QAAQ,GAAG,UAAoB;AAAA,IAG1D;AACE,YAAM,IAAI,UAAU,4BAA4B,OAAO,UAAU,GAAG;AAAA,EACxE;AACF;",
5
5
  "names": []
6
6
  }
@@ -10,6 +10,7 @@ function getValidator(validation) {
10
10
  }
11
11
  switch (typeof validation) {
12
12
  case "boolean":
13
+ case "bigint":
13
14
  case "string":
14
15
  case "number":
15
16
  return new (registry.get("constant"))(validation);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/utilities.ts"],
4
- "mappings": ";AAAA,SAAS,oBAAoB;AAC7B,SAAS,gBAAgB;AASlB,SAAS,aAAa,YAAmC;AAC9D,eAAa,eAAe,QAAW,uCAAuC;AAG9E,MAAI,eAAe;AAAM,WAAO,KAAK,SAAS,IAAI,UAAU,GAAG,IAAI;AAGnE,MAAW,WAAY,OAAO,eAAe,GAAG;AAC9C,WAAc,WAAY,OAAO,eAAe;AAAA,EAClD;AAGA,UAAQ,OAAO,YAAY;AAAA,IAEzB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO,KAAK,SAAS,IAAI,UAAU,GAAG,UAAU;AAAA,IAGlD,KAAK;AAEH,UAAI,MAAM,QAAQ,UAAU;AAAG,eAAO,KAAK,SAAS,IAAI,OAAO,GAAG,UAAU;AAE5E,aAAO,KAAK,SAAS,IAAI,QAAQ,GAAG,UAAoB;AAAA,IAG1D;AACE,YAAM,IAAI,UAAU,4BAA4B,OAAO,UAAU,GAAG;AAAA,EACxE;AACF;",
4
+ "mappings": ";AAAA,SAAS,oBAAoB;AAC7B,SAAS,gBAAgB;AASlB,SAAS,aAAa,YAAmC;AAC9D,eAAa,eAAe,QAAW,uCAAuC;AAG9E,MAAI,eAAe;AAAM,WAAO,KAAK,SAAS,IAAI,UAAU,GAAG,IAAI;AAGnE,MAAW,WAAY,OAAO,eAAe,GAAG;AAC9C,WAAc,WAAY,OAAO,eAAe;AAAA,EAClD;AAGA,UAAQ,OAAO,YAAY;AAAA,IAEzB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO,KAAK,SAAS,IAAI,UAAU,GAAG,UAAU;AAAA,IAGlD,KAAK;AAEH,UAAI,MAAM,QAAQ,UAAU;AAAG,eAAO,KAAK,SAAS,IAAI,OAAO,GAAG,UAAU;AAE5E,aAAO,KAAK,SAAS,IAAI,QAAQ,GAAG,UAAoB;AAAA,IAG1D;AACE,YAAM,IAAI,UAAU,4BAA4B,OAAO,UAAU,GAAG;AAAA,EACxE;AACF;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // validators/bigint.ts
21
+ var bigint_exports = {};
22
+ __export(bigint_exports, {
23
+ AnyBigIntValidator: () => AnyBigIntValidator,
24
+ BigIntValidator: () => BigIntValidator,
25
+ bigint: () => bigint,
26
+ bigintFactory: () => bigintFactory
27
+ });
28
+ module.exports = __toCommonJS(bigint_exports);
29
+ var import_errors = require("../errors.cjs");
30
+ var import_types = require("../types.cjs");
31
+ var AnyBigIntValidator = class extends import_types.AbstractValidator {
32
+ validate(value) {
33
+ if (typeof value === "number") {
34
+ try {
35
+ value = BigInt(value);
36
+ } catch (error) {
37
+ throw new import_errors.ValidationError("BigInt can not be parsed from number");
38
+ }
39
+ }
40
+ (0, import_errors.assertValidation)(typeof value === "bigint", 'Value is not a "bigint"');
41
+ return value;
42
+ }
43
+ };
44
+ var BigIntValidator = class extends import_types.AbstractValidator {
45
+ fromString;
46
+ fromNumber;
47
+ exclusiveMaximum;
48
+ exclusiveMinimum;
49
+ maximum;
50
+ minimum;
51
+ multipleOf;
52
+ brand;
53
+ constructor(constraints = {}) {
54
+ super();
55
+ const {
56
+ exclusiveMaximum,
57
+ exclusiveMinimum,
58
+ maximum,
59
+ minimum,
60
+ multipleOf,
61
+ fromString = false,
62
+ fromNumber = true
63
+ } = constraints;
64
+ if ("brand" in constraints)
65
+ this.brand = constraints.brand;
66
+ this.fromString = fromString;
67
+ this.fromNumber = fromNumber;
68
+ const _exclusiveMaximum = exclusiveMaximum === void 0 ? void 0 : BigInt(exclusiveMaximum);
69
+ const _exclusiveMinimum = exclusiveMinimum === void 0 ? void 0 : BigInt(exclusiveMinimum);
70
+ const _maximum = maximum === void 0 ? void 0 : BigInt(maximum);
71
+ const _minimum = minimum === void 0 ? void 0 : BigInt(minimum);
72
+ const _multipleOf = multipleOf === void 0 ? void 0 : BigInt(multipleOf);
73
+ if (_maximum !== void 0 && _minimum !== void 0) {
74
+ (0, import_errors.assertSchema)(_maximum >= _minimum, `Constraint "minimum" (${_minimum}) is greater than "maximum" (${_maximum})`);
75
+ }
76
+ if (_exclusiveMaximum !== void 0 && _minimum !== void 0) {
77
+ (0, import_errors.assertSchema)(
78
+ _exclusiveMaximum > _minimum,
79
+ `Constraint "exclusiveMaximum" (${_exclusiveMaximum}) must be greater than "minimum" (${_minimum})`
80
+ );
81
+ }
82
+ if (_exclusiveMinimum !== void 0 && _maximum != void 0) {
83
+ (0, import_errors.assertSchema)(
84
+ _maximum > _exclusiveMinimum,
85
+ `Constraint "maximum" (${_maximum}) must be greater than "exclusiveMinimum" (${_exclusiveMinimum})`
86
+ );
87
+ }
88
+ if (_exclusiveMinimum != void 0 && _exclusiveMaximum !== void 0) {
89
+ (0, import_errors.assertSchema)(
90
+ _exclusiveMaximum > _exclusiveMinimum,
91
+ `Constraint "exclusiveMaximum" (${_exclusiveMaximum}) must be greater than "exclusiveMinimum" (${_exclusiveMinimum})`
92
+ );
93
+ }
94
+ if (_multipleOf !== void 0) {
95
+ (0, import_errors.assertSchema)(_multipleOf > 0, `Constraint "multipleOf" (${_multipleOf}) must be greater than zero`);
96
+ }
97
+ this.exclusiveMaximum = _exclusiveMaximum;
98
+ this.exclusiveMinimum = _exclusiveMinimum;
99
+ this.maximum = _maximum;
100
+ this.minimum = _minimum;
101
+ this.multipleOf = _multipleOf;
102
+ }
103
+ validate(value) {
104
+ if (typeof value === "string" && this.fromString || typeof value === "number" && this.fromNumber) {
105
+ try {
106
+ value = BigInt(value);
107
+ } catch (error) {
108
+ throw new import_errors.ValidationError("BigInt can not be parsed from " + typeof value);
109
+ }
110
+ }
111
+ (0, import_errors.assertValidation)(typeof value === "bigint", 'Value is not a "bigint"');
112
+ (0, import_errors.assertValidation)(
113
+ this.minimum === void 0 || value >= this.minimum,
114
+ `BigInt is less than ${this.minimum}`
115
+ );
116
+ (0, import_errors.assertValidation)(
117
+ this.maximum === void 0 || value <= this.maximum,
118
+ `BigInt is greater than ${this.maximum}`
119
+ );
120
+ (0, import_errors.assertValidation)(
121
+ this.exclusiveMinimum === void 0 || value > this.exclusiveMinimum,
122
+ `BigInt is less than or equal to ${this.exclusiveMinimum}`
123
+ );
124
+ (0, import_errors.assertValidation)(
125
+ this.exclusiveMaximum === void 0 || value < this.exclusiveMaximum,
126
+ `BigInt is greater than or equal to ${this.exclusiveMaximum}`
127
+ );
128
+ (0, import_errors.assertValidation)(
129
+ this.multipleOf === void 0 || !(value % this.multipleOf),
130
+ `BigInt is not a multiple of ${this.multipleOf}`
131
+ );
132
+ return value;
133
+ }
134
+ };
135
+ function bigintFactory(constraints) {
136
+ return new BigIntValidator(constraints);
137
+ }
138
+ var bigint = (0, import_types.makeValidatorFactory)(new AnyBigIntValidator(), bigintFactory);
139
+ // Annotate the CommonJS export names for ESM import in node:
140
+ 0 && (module.exports = {
141
+ AnyBigIntValidator,
142
+ BigIntValidator,
143
+ bigint,
144
+ bigintFactory
145
+ });
146
+ //# sourceMappingURL=bigint.cjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/validators/bigint.ts"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }
@@ -0,0 +1,46 @@
1
+ import { AbstractValidator } from '../types';
2
+ import type { Branding } from '../types';
3
+ /** Constraints to validate a `bigint` with. */
4
+ export interface BigIntConstraints {
5
+ /** The value for which a `bigint` must be multiple of for it to be valid */
6
+ multipleOf?: bigint | number;
7
+ /** The _inclusive_ maximum value for a valid `bigint`: `value <= maximum` */
8
+ maximum?: bigint | number;
9
+ /** The _inclusive_ minimum value for a valid `bigint`: `value >= minimum` */
10
+ minimum?: bigint | number;
11
+ /** The _exclusive_ maximum value for a valid `bigint`: `value < exclusiveMaximum` */
12
+ exclusiveMaximum?: bigint | number;
13
+ /** The _exclusive_ minimum value for a valid `bigint`: `value > exclusiveMaximum` */
14
+ exclusiveMinimum?: bigint | number;
15
+ /** Allow bigints to be parsed from strings (e.g. `123.456` or `0x0CAFE`, default: `false`) */
16
+ fromString?: boolean;
17
+ /** Allow bigints to be parsed from numbers (default: `true`) */
18
+ fromNumber?: boolean;
19
+ }
20
+ /** Constraints to validate a `bigint` with extra branding information. */
21
+ export interface BrandedBigIntConstraints<B extends string> extends BigIntConstraints {
22
+ /** The _brand_ of the string (will generate a `__brand_${B}` type property */
23
+ brand: B;
24
+ }
25
+ /** A `Validator` validating any `bigint`. */
26
+ export declare class AnyBigIntValidator extends AbstractValidator<bigint> {
27
+ validate(value: unknown): bigint;
28
+ }
29
+ /** A `Validator` validating `bigint`s with constaints. */
30
+ export declare class BigIntValidator<N extends bigint = bigint> extends AbstractValidator<N, bigint> {
31
+ readonly fromString: boolean;
32
+ readonly fromNumber: boolean;
33
+ readonly exclusiveMaximum?: bigint;
34
+ readonly exclusiveMinimum?: bigint;
35
+ readonly maximum?: bigint;
36
+ readonly minimum?: bigint;
37
+ readonly multipleOf?: bigint;
38
+ readonly brand?: string;
39
+ constructor(constraints?: BigIntConstraints);
40
+ validate(value: unknown): N;
41
+ }
42
+ export declare function bigintFactory(constraints: BigIntConstraints): BigIntValidator<bigint>;
43
+ export declare function bigintFactory<N extends bigint>(constraints: BigIntConstraints): BigIntValidator<N>;
44
+ export declare function bigintFactory<B extends string>(constraints: BrandedBigIntConstraints<B>): BigIntValidator<bigint & Branding<B>>;
45
+ /** Validate `bigint`s. */
46
+ export declare const bigint: typeof bigintFactory & AnyBigIntValidator;
@@ -0,0 +1,118 @@
1
+ // validators/bigint.ts
2
+ import { assertSchema, assertValidation, ValidationError } from "../errors.mjs";
3
+ import { AbstractValidator, makeValidatorFactory } from "../types.mjs";
4
+ var AnyBigIntValidator = class extends AbstractValidator {
5
+ validate(value) {
6
+ if (typeof value === "number") {
7
+ try {
8
+ value = BigInt(value);
9
+ } catch (error) {
10
+ throw new ValidationError("BigInt can not be parsed from number");
11
+ }
12
+ }
13
+ assertValidation(typeof value === "bigint", 'Value is not a "bigint"');
14
+ return value;
15
+ }
16
+ };
17
+ var BigIntValidator = class extends AbstractValidator {
18
+ fromString;
19
+ fromNumber;
20
+ exclusiveMaximum;
21
+ exclusiveMinimum;
22
+ maximum;
23
+ minimum;
24
+ multipleOf;
25
+ brand;
26
+ constructor(constraints = {}) {
27
+ super();
28
+ const {
29
+ exclusiveMaximum,
30
+ exclusiveMinimum,
31
+ maximum,
32
+ minimum,
33
+ multipleOf,
34
+ fromString = false,
35
+ fromNumber = true
36
+ } = constraints;
37
+ if ("brand" in constraints)
38
+ this.brand = constraints.brand;
39
+ this.fromString = fromString;
40
+ this.fromNumber = fromNumber;
41
+ const _exclusiveMaximum = exclusiveMaximum === void 0 ? void 0 : BigInt(exclusiveMaximum);
42
+ const _exclusiveMinimum = exclusiveMinimum === void 0 ? void 0 : BigInt(exclusiveMinimum);
43
+ const _maximum = maximum === void 0 ? void 0 : BigInt(maximum);
44
+ const _minimum = minimum === void 0 ? void 0 : BigInt(minimum);
45
+ const _multipleOf = multipleOf === void 0 ? void 0 : BigInt(multipleOf);
46
+ if (_maximum !== void 0 && _minimum !== void 0) {
47
+ assertSchema(_maximum >= _minimum, `Constraint "minimum" (${_minimum}) is greater than "maximum" (${_maximum})`);
48
+ }
49
+ if (_exclusiveMaximum !== void 0 && _minimum !== void 0) {
50
+ assertSchema(
51
+ _exclusiveMaximum > _minimum,
52
+ `Constraint "exclusiveMaximum" (${_exclusiveMaximum}) must be greater than "minimum" (${_minimum})`
53
+ );
54
+ }
55
+ if (_exclusiveMinimum !== void 0 && _maximum != void 0) {
56
+ assertSchema(
57
+ _maximum > _exclusiveMinimum,
58
+ `Constraint "maximum" (${_maximum}) must be greater than "exclusiveMinimum" (${_exclusiveMinimum})`
59
+ );
60
+ }
61
+ if (_exclusiveMinimum != void 0 && _exclusiveMaximum !== void 0) {
62
+ assertSchema(
63
+ _exclusiveMaximum > _exclusiveMinimum,
64
+ `Constraint "exclusiveMaximum" (${_exclusiveMaximum}) must be greater than "exclusiveMinimum" (${_exclusiveMinimum})`
65
+ );
66
+ }
67
+ if (_multipleOf !== void 0) {
68
+ assertSchema(_multipleOf > 0, `Constraint "multipleOf" (${_multipleOf}) must be greater than zero`);
69
+ }
70
+ this.exclusiveMaximum = _exclusiveMaximum;
71
+ this.exclusiveMinimum = _exclusiveMinimum;
72
+ this.maximum = _maximum;
73
+ this.minimum = _minimum;
74
+ this.multipleOf = _multipleOf;
75
+ }
76
+ validate(value) {
77
+ if (typeof value === "string" && this.fromString || typeof value === "number" && this.fromNumber) {
78
+ try {
79
+ value = BigInt(value);
80
+ } catch (error) {
81
+ throw new ValidationError("BigInt can not be parsed from " + typeof value);
82
+ }
83
+ }
84
+ assertValidation(typeof value === "bigint", 'Value is not a "bigint"');
85
+ assertValidation(
86
+ this.minimum === void 0 || value >= this.minimum,
87
+ `BigInt is less than ${this.minimum}`
88
+ );
89
+ assertValidation(
90
+ this.maximum === void 0 || value <= this.maximum,
91
+ `BigInt is greater than ${this.maximum}`
92
+ );
93
+ assertValidation(
94
+ this.exclusiveMinimum === void 0 || value > this.exclusiveMinimum,
95
+ `BigInt is less than or equal to ${this.exclusiveMinimum}`
96
+ );
97
+ assertValidation(
98
+ this.exclusiveMaximum === void 0 || value < this.exclusiveMaximum,
99
+ `BigInt is greater than or equal to ${this.exclusiveMaximum}`
100
+ );
101
+ assertValidation(
102
+ this.multipleOf === void 0 || !(value % this.multipleOf),
103
+ `BigInt is not a multiple of ${this.multipleOf}`
104
+ );
105
+ return value;
106
+ }
107
+ };
108
+ function bigintFactory(constraints) {
109
+ return new BigIntValidator(constraints);
110
+ }
111
+ var bigint = makeValidatorFactory(new AnyBigIntValidator(), bigintFactory);
112
+ export {
113
+ AnyBigIntValidator,
114
+ BigIntValidator,
115
+ bigint,
116
+ bigintFactory
117
+ };
118
+ //# sourceMappingURL=bigint.mjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/validators/bigint.ts"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }
@@ -35,7 +35,7 @@ var BooleanValidator = class extends import_types.AbstractValidator {
35
35
  this.fromString = fromString;
36
36
  }
37
37
  validate(value) {
38
- if (typeof value == "string" && this.fromString) {
38
+ if (typeof value === "string" && this.fromString) {
39
39
  const string = value.toLowerCase();
40
40
  const parsed = string === "true" ? true : string === "false" ? false : void 0;
41
41
  (0, import_errors.assertValidation)(parsed !== void 0, "Boolean can not be parsed from string");
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/validators/boolean.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAiC;AACjC,mBAAwD;AAejD,IAAM,mBAAN,cAA+B,+BAA2B;AAAA,EACtD;AAAA,EAET,YAAY,cAAkC,CAAC,GAAG;AAChD,UAAM;AACN,UAAM,EAAE,aAAa,MAAM,IAAI;AAC/B,SAAK,aAAa;AAAA,EACpB;AAAA,EAEA,SAAS,OAAyB;AAEhC,QAAK,OAAO,SAAS,YAAc,KAAK,YAAa;AACnD,YAAM,SAAS,MAAM,YAAY;AACjC,YAAM,SAAS,WAAW,SAAS,OAAO,WAAW,UAAU,QAAQ;AACvE,0CAAiB,WAAW,QAAW,uCAAuC;AAC9E,cAAQ;AAAA,IACV;AAEA,wCAAiB,OAAO,UAAU,WAAW,0BAA0B;AACvE,WAAO;AAAA,EACT;AACF;AAEO,SAAS,eAAe,aAAmD;AAChF,SAAO,IAAI,iBAAiB,WAAW;AACzC;AAGO,IAAM,cAAU,mCAAqB,IAAI,iBAAiB,GAAG,cAAc;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAiC;AACjC,mBAAwD;AAejD,IAAM,mBAAN,cAA+B,+BAA2B;AAAA,EACtD;AAAA,EAET,YAAY,cAAkC,CAAC,GAAG;AAChD,UAAM;AACN,UAAM,EAAE,aAAa,MAAM,IAAI;AAC/B,SAAK,aAAa;AAAA,EACpB;AAAA,EAEA,SAAS,OAAyB;AAEhC,QAAK,OAAO,UAAU,YAAc,KAAK,YAAa;AACpD,YAAM,SAAS,MAAM,YAAY;AACjC,YAAM,SAAS,WAAW,SAAS,OAAO,WAAW,UAAU,QAAQ;AACvE,0CAAiB,WAAW,QAAW,uCAAuC;AAC9E,cAAQ;AAAA,IACV;AAEA,wCAAiB,OAAO,UAAU,WAAW,0BAA0B;AACvE,WAAO;AAAA,EACT;AACF;AAEO,SAAS,eAAe,aAAmD;AAChF,SAAO,IAAI,iBAAiB,WAAW;AACzC;AAGO,IAAM,cAAU,mCAAqB,IAAI,iBAAiB,GAAG,cAAc;",
5
5
  "names": []
6
6
  }
@@ -9,7 +9,7 @@ var BooleanValidator = class extends AbstractValidator {
9
9
  this.fromString = fromString;
10
10
  }
11
11
  validate(value) {
12
- if (typeof value == "string" && this.fromString) {
12
+ if (typeof value === "string" && this.fromString) {
13
13
  const string = value.toLowerCase();
14
14
  const parsed = string === "true" ? true : string === "false" ? false : void 0;
15
15
  assertValidation(parsed !== void 0, "Boolean can not be parsed from string");
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/validators/boolean.ts"],
4
- "mappings": ";AAAA,SAAS,wBAAwB;AACjC,SAAS,mBAAmB,4BAA4B;AAejD,IAAM,mBAAN,cAA+B,kBAA2B;AAAA,EACtD;AAAA,EAET,YAAY,cAAkC,CAAC,GAAG;AAChD,UAAM;AACN,UAAM,EAAE,aAAa,MAAM,IAAI;AAC/B,SAAK,aAAa;AAAA,EACpB;AAAA,EAEA,SAAS,OAAyB;AAEhC,QAAK,OAAO,SAAS,YAAc,KAAK,YAAa;AACnD,YAAM,SAAS,MAAM,YAAY;AACjC,YAAM,SAAS,WAAW,SAAS,OAAO,WAAW,UAAU,QAAQ;AACvE,uBAAiB,WAAW,QAAW,uCAAuC;AAC9E,cAAQ;AAAA,IACV;AAEA,qBAAiB,OAAO,UAAU,WAAW,0BAA0B;AACvE,WAAO;AAAA,EACT;AACF;AAEO,SAAS,eAAe,aAAmD;AAChF,SAAO,IAAI,iBAAiB,WAAW;AACzC;AAGO,IAAM,UAAU,qBAAqB,IAAI,iBAAiB,GAAG,cAAc;",
4
+ "mappings": ";AAAA,SAAS,wBAAwB;AACjC,SAAS,mBAAmB,4BAA4B;AAejD,IAAM,mBAAN,cAA+B,kBAA2B;AAAA,EACtD;AAAA,EAET,YAAY,cAAkC,CAAC,GAAG;AAChD,UAAM;AACN,UAAM,EAAE,aAAa,MAAM,IAAI;AAC/B,SAAK,aAAa;AAAA,EACpB;AAAA,EAEA,SAAS,OAAyB;AAEhC,QAAK,OAAO,UAAU,YAAc,KAAK,YAAa;AACpD,YAAM,SAAS,MAAM,YAAY;AACjC,YAAM,SAAS,WAAW,SAAS,OAAO,WAAW,UAAU,QAAQ;AACvE,uBAAiB,WAAW,QAAW,uCAAuC;AAC9E,cAAQ;AAAA,IACV;AAEA,qBAAiB,OAAO,UAAU,WAAW,0BAA0B;AACvE,WAAO;AAAA,EACT;AACF;AAEO,SAAS,eAAe,aAAmD;AAChF,SAAO,IAAI,iBAAiB,WAAW;AACzC;AAGO,IAAM,UAAU,qBAAqB,IAAI,iBAAiB,GAAG,cAAc;",
5
5
  "names": []
6
6
  }
@@ -34,7 +34,8 @@ var ConstantValidator = class extends import_types.AbstractValidator {
34
34
  this.constant = constant2;
35
35
  }
36
36
  validate(value) {
37
- (0, import_errors.assertValidation)(value === this.constant, `Value does not match constant "${this.constant}"`);
37
+ const extra = this.constant === null ? "" : ` (${typeof this.constant})`;
38
+ (0, import_errors.assertValidation)(value === this.constant, `Value does not match constant "${this.constant}"${extra}`);
38
39
  return value;
39
40
  }
40
41
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/validators/constant.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAiC;AACjC,sBAAyB;AACzB,mBAAkC;AAK3B,IAAM,oBAAN,cAA4E,+BAAqB;AAAA,EAC7F;AAAA,EAET,YAAYA,WAAa;AACvB,UAAM;AACN,SAAK,WAAWA;AAAA,EAClB;AAAA,EAEA,SAAS,OAAmB;AAC1B,wCAAiB,UAAU,KAAK,UAAU,kCAAkC,KAAK,QAAQ,GAAG;AAC5F,WAAO;AAAA,EACT;AACF;AAGO,SAAS,SAAqDA,WAA2B;AAC9F,SAAO,IAAI,kBAAkBA,SAAQ;AACvC;AAGA,yBAAS,IAAI,YAAY,iBAAiB;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAiC;AACjC,sBAAyB;AACzB,mBAAkC;AAK3B,IAAM,oBAAN,cAAqF,+BAAqB;AAAA,EACtG;AAAA,EAET,YAAYA,WAAa;AACvB,UAAM;AACN,SAAK,WAAWA;AAAA,EAClB;AAAA,EAEA,SAAS,OAAmB;AAC1B,UAAM,QAAQ,KAAK,aAAa,OAAO,KAAK,KAAK,OAAO,KAAK,QAAQ;AACrE,wCAAiB,UAAU,KAAK,UAAU,kCAAkC,KAAK,QAAQ,IAAI,KAAK,EAAE;AACpG,WAAO;AAAA,EACT;AACF;AAGO,SAAS,SAA8DA,WAA2B;AACvG,SAAO,IAAI,kBAAkBA,SAAQ;AACvC;AAGA,yBAAS,IAAI,YAAY,iBAAiB;",
5
5
  "names": ["constant"]
6
6
  }
@@ -1,10 +1,10 @@
1
1
  import { AbstractValidator } from '../types';
2
2
  import type { Validator } from '../types';
3
3
  /** A `Validator` for _constants_. */
4
- export declare class ConstantValidator<T extends string | number | boolean | null> extends AbstractValidator<T> {
4
+ export declare class ConstantValidator<T extends string | number | boolean | bigint | null> extends AbstractValidator<T> {
5
5
  readonly constant: T;
6
6
  constructor(constant: T);
7
7
  validate(value: unknown): T;
8
8
  }
9
9
  /** Validate _constants_. */
10
- export declare function constant<T extends string | number | boolean | null>(constant: T): Validator<T>;
10
+ export declare function constant<T extends string | number | boolean | bigint | null>(constant: T): Validator<T>;
@@ -9,7 +9,8 @@ var ConstantValidator = class extends AbstractValidator {
9
9
  this.constant = constant2;
10
10
  }
11
11
  validate(value) {
12
- assertValidation(value === this.constant, `Value does not match constant "${this.constant}"`);
12
+ const extra = this.constant === null ? "" : ` (${typeof this.constant})`;
13
+ assertValidation(value === this.constant, `Value does not match constant "${this.constant}"${extra}`);
13
14
  return value;
14
15
  }
15
16
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/validators/constant.ts"],
4
- "mappings": ";AAAA,SAAS,wBAAwB;AACjC,SAAS,gBAAgB;AACzB,SAAS,yBAAyB;AAK3B,IAAM,oBAAN,cAA4E,kBAAqB;AAAA,EAC7F;AAAA,EAET,YAAYA,WAAa;AACvB,UAAM;AACN,SAAK,WAAWA;AAAA,EAClB;AAAA,EAEA,SAAS,OAAmB;AAC1B,qBAAiB,UAAU,KAAK,UAAU,kCAAkC,KAAK,QAAQ,GAAG;AAC5F,WAAO;AAAA,EACT;AACF;AAGO,SAAS,SAAqDA,WAA2B;AAC9F,SAAO,IAAI,kBAAkBA,SAAQ;AACvC;AAGA,SAAS,IAAI,YAAY,iBAAiB;",
4
+ "mappings": ";AAAA,SAAS,wBAAwB;AACjC,SAAS,gBAAgB;AACzB,SAAS,yBAAyB;AAK3B,IAAM,oBAAN,cAAqF,kBAAqB;AAAA,EACtG;AAAA,EAET,YAAYA,WAAa;AACvB,UAAM;AACN,SAAK,WAAWA;AAAA,EAClB;AAAA,EAEA,SAAS,OAAmB;AAC1B,UAAM,QAAQ,KAAK,aAAa,OAAO,KAAK,KAAK,OAAO,KAAK,QAAQ;AACrE,qBAAiB,UAAU,KAAK,UAAU,kCAAkC,KAAK,QAAQ,IAAI,KAAK,EAAE;AACpG,WAAO;AAAA,EACT;AACF;AAGO,SAAS,SAA8DA,WAA2B;AACvG,SAAO,IAAI,kBAAkBA,SAAQ;AACvC;AAGA,SAAS,IAAI,YAAY,iBAAiB;",
5
5
  "names": ["constant"]
6
6
  }
@@ -28,7 +28,7 @@ var import_errors = require("../errors.cjs");
28
28
  var import_types = require("../types.cjs");
29
29
  var NeverValidator = class extends import_types.AbstractValidator {
30
30
  optional = true;
31
- validate(value, options = import_types.defaultValidationOptions) {
31
+ validate(value, options = {}) {
32
32
  const { stripForbiddenProperties } = options;
33
33
  if (stripForbiddenProperties || value === void 0)
34
34
  return;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/validators/never.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAgC;AAChC,mBAA4D;AAKrD,IAAM,iBAAN,cAA6B,+BAAyB;AAAA,EAC3D,WAAiB;AAAA,EAEjB,SAAS,OAAgB,UAA6B,uCAAiC;AACrF,UAAM,EAAE,yBAAyB,IAAI;AAGrC,QAAI,4BAA6B,UAAU;AAAY;AACvD,UAAM,IAAI,8BAAgB,oBAAoB;AAAA,EAChD;AACF;AAGO,IAAM,QAAQ,IAAI,eAAe;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAgC;AAChC,mBAAkC;AAK3B,IAAM,iBAAN,cAA6B,+BAAyB;AAAA,EAC3D,WAAiB;AAAA,EAEjB,SAAS,OAAgB,UAA6B,CAAC,GAAU;AAC/D,UAAM,EAAE,yBAAyB,IAAI;AAGrC,QAAI,4BAA6B,UAAU;AAAY;AACvD,UAAM,IAAI,8BAAgB,oBAAoB;AAAA,EAChD;AACF;AAGO,IAAM,QAAQ,IAAI,eAAe;",
5
5
  "names": []
6
6
  }
@@ -1,9 +1,9 @@
1
1
  // validators/never.ts
2
2
  import { ValidationError } from "../errors.mjs";
3
- import { AbstractValidator, defaultValidationOptions } from "../types.mjs";
3
+ import { AbstractValidator } from "../types.mjs";
4
4
  var NeverValidator = class extends AbstractValidator {
5
5
  optional = true;
6
- validate(value, options = defaultValidationOptions) {
6
+ validate(value, options = {}) {
7
7
  const { stripForbiddenProperties } = options;
8
8
  if (stripForbiddenProperties || value === void 0)
9
9
  return;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/validators/never.ts"],
4
- "mappings": ";AAAA,SAAS,uBAAuB;AAChC,SAAS,mBAAmB,gCAAgC;AAKrD,IAAM,iBAAN,cAA6B,kBAAyB;AAAA,EAC3D,WAAiB;AAAA,EAEjB,SAAS,OAAgB,UAA6B,0BAAiC;AACrF,UAAM,EAAE,yBAAyB,IAAI;AAGrC,QAAI,4BAA6B,UAAU;AAAY;AACvD,UAAM,IAAI,gBAAgB,oBAAoB;AAAA,EAChD;AACF;AAGO,IAAM,QAAQ,IAAI,eAAe;",
4
+ "mappings": ";AAAA,SAAS,uBAAuB;AAChC,SAAS,yBAAyB;AAK3B,IAAM,iBAAN,cAA6B,kBAAyB;AAAA,EAC3D,WAAiB;AAAA,EAEjB,SAAS,OAAgB,UAA6B,CAAC,GAAU;AAC/D,UAAM,EAAE,yBAAyB,IAAI;AAGrC,QAAI,4BAA6B,UAAU;AAAY;AACvD,UAAM,IAAI,gBAAgB,oBAAoB;AAAA,EAChD;AACF;AAGO,IAAM,QAAQ,IAAI,eAAe;",
5
5
  "names": []
6
6
  }