justus 0.0.1 → 0.0.5

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,6 +1,8 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __defProps = Object.defineProperties;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
4
  var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
6
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
8
  var __propIsEnum = Object.prototype.propertyIsEnumerable;
@@ -17,7 +19,6 @@ var __spreadValues = (a, b) => {
17
19
  return a;
18
20
  };
19
21
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
- var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
21
22
  var __restKey = (key) => typeof key === "symbol" ? key : key + "";
22
23
  var __objRest = (source, exclude) => {
23
24
  var target = {};
@@ -32,36 +33,27 @@ var __objRest = (source, exclude) => {
32
33
  return target;
33
34
  };
34
35
  var __export = (target, all) => {
35
- __markAsModule(target);
36
36
  for (var name in all)
37
37
  __defProp(target, name, { get: all[name], enumerable: true });
38
38
  };
39
- var __publicField = (obj, key, value) => {
40
- __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
41
- return value;
42
- };
43
- var __accessCheck = (obj, member, msg) => {
44
- if (!member.has(obj))
45
- throw TypeError("Cannot " + msg);
46
- };
47
- var __privateGet = (obj, member, getter) => {
48
- __accessCheck(obj, member, "read from private field");
49
- return getter ? getter.call(obj) : member.get(obj);
50
- };
51
- var __privateAdd = (obj, member, value) => {
52
- if (member.has(obj))
53
- throw TypeError("Cannot add the same private member more than once");
54
- member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
55
- };
56
- var __privateSet = (obj, member, value, setter) => {
57
- __accessCheck(obj, member, "write to private field");
58
- setter ? setter.call(obj, value) : member.set(obj, value);
59
- return value;
39
+ var __copyProps = (to, from, except, desc) => {
40
+ if (from && typeof from === "object" || typeof from === "function") {
41
+ for (let key of __getOwnPropNames(from))
42
+ if (!__hasOwnProp.call(to, key) && key !== except)
43
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
44
+ }
45
+ return to;
60
46
  };
47
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
61
48
 
62
49
  // src/index.ts
63
- __export(exports, {
50
+ var src_exports = {};
51
+ __export(src_exports, {
64
52
  AllOfValidator: () => AllOfValidator,
53
+ AnyArrayValidator: () => AnyArrayValidator,
54
+ AnyNumberValidator: () => AnyNumberValidator,
55
+ AnyObjectValidator: () => AnyObjectValidator,
56
+ AnyStringValidator: () => AnyStringValidator,
65
57
  AnyValidator: () => AnyValidator,
66
58
  ArrayValidator: () => ArrayValidator,
67
59
  BooleanValidator: () => BooleanValidator,
@@ -72,9 +64,17 @@ __export(exports, {
72
64
  OneOfValidator: () => OneOfValidator,
73
65
  StringValidator: () => StringValidator,
74
66
  TupleValidator: () => TupleValidator,
67
+ URLValidator: () => URLValidator,
75
68
  ValidationError: () => ValidationError,
76
69
  ValidationErrorBuilder: () => ValidationErrorBuilder,
77
70
  Validator: () => Validator,
71
+ _allowAdditionalProperties: () => _allowAdditionalProperties,
72
+ _array: () => _array,
73
+ _date: () => _date,
74
+ _number: () => _number,
75
+ _object: () => _object,
76
+ _string: () => _string,
77
+ _url: () => _url,
78
78
  additionalValidator: () => additionalValidator,
79
79
  allOf: () => allOf,
80
80
  allowAdditionalProperties: () => allowAdditionalProperties,
@@ -98,9 +98,12 @@ __export(exports, {
98
98
  restValidator: () => restValidator,
99
99
  schemaValidator: () => schemaValidator,
100
100
  string: () => string,
101
+ strip: () => strip,
101
102
  tuple: () => tuple,
103
+ url: () => url,
102
104
  validate: () => validate
103
105
  });
106
+ module.exports = __toCommonJS(src_exports);
104
107
 
105
108
  // src/errors.ts
106
109
  function pathToString(path) {
@@ -138,8 +141,8 @@ var ValidationError = class extends Error {
138
141
  };
139
142
  var ValidationErrorBuilder = class {
140
143
  errors = [];
141
- record(error, key) {
142
- const path = key === void 0 ? [] : [key];
144
+ record(error, ...key) {
145
+ const path = [...key];
143
146
  if (error instanceof ValidationError) {
144
147
  error.errors.forEach(({ path: subpath, message }) => {
145
148
  this.errors.push({ path: [...path, ...subpath], message });
@@ -203,24 +206,26 @@ var nullValidator = new ConstantValidator(null);
203
206
 
204
207
  // src/validators/tuple.ts
205
208
  var TupleValidator = class extends Validator {
209
+ members;
206
210
  tuple;
207
- #validators = [];
208
211
  constructor(tuple2) {
209
212
  super();
210
- this.tuple = tuple2;
213
+ const members = [];
211
214
  for (const item of tuple2) {
212
215
  if (item === null) {
213
- this.#validators.push({ single: true, validator: nullValidator });
216
+ members.push({ single: true, validator: nullValidator });
214
217
  } else if (typeof item === "object" && restValidator in item) {
215
- this.#validators.push({ single: false, validator: item[restValidator] });
218
+ members.push({ single: false, validator: item[restValidator] });
216
219
  } else {
217
- this.#validators.push({ single: true, validator: getValidator(item) });
220
+ members.push({ single: true, validator: getValidator(item) });
218
221
  }
219
222
  }
223
+ this.members = members;
224
+ this.tuple = tuple2;
220
225
  }
221
226
  validate(value, options) {
222
227
  assertValidation(Array.isArray(value), 'Value is not an "array"');
223
- if (this.#validators.length === 0) {
228
+ if (this.members.length === 0) {
224
229
  const size = value.length;
225
230
  assertValidation(size === 0, `Found ${size} element${size === 1 ? "" : "s"} validating empty tuple`);
226
231
  return value;
@@ -228,24 +233,24 @@ var TupleValidator = class extends Validator {
228
233
  const clone = new Array(value.length);
229
234
  let needle = 0;
230
235
  let haystack = 0;
231
- let { single, validator } = this.#validators[needle];
232
- while (needle < this.#validators.length && haystack < value.length) {
236
+ let { single, validator } = this.members[needle];
237
+ while (needle < this.members.length && haystack < value.length) {
233
238
  try {
234
239
  clone[haystack] = validator.validate(value[haystack], options);
235
240
  if (single)
236
- ({ single, validator } = this.#validators[++needle] || {});
241
+ ({ single, validator } = this.members[++needle] || {});
237
242
  haystack++;
238
243
  } catch (error) {
239
244
  if (single)
240
245
  throw new ValidationError(error, [haystack]);
241
246
  else
242
- ({ single, validator } = this.#validators[++needle] || {});
247
+ ({ single, validator } = this.members[++needle] || {});
243
248
  }
244
249
  }
245
- while (needle < this.#validators.length && this.#validators[needle].single === false) {
250
+ while (needle < this.members.length && this.members[needle].single === false) {
246
251
  needle++;
247
252
  }
248
- const missing = this.#validators.length - needle;
253
+ const missing = this.members.length - needle;
249
254
  if (missing === 1 && single) {
250
255
  throw new ValidationError("Tuple defines 1 missing validation");
251
256
  } else if (missing > 1) {
@@ -268,26 +273,35 @@ function makeTupleRestIterable(create) {
268
273
  }
269
274
 
270
275
  // src/validators/object.ts
276
+ var AnyObjectValidator = class extends Validator {
277
+ validate(value) {
278
+ assertValidation(typeof value == "object", 'Value is not an "object"');
279
+ assertValidation(value !== null, 'Value is "null"');
280
+ return value;
281
+ }
282
+ };
271
283
  var ObjectValidator = class extends Validator {
272
284
  schema;
273
- #additionalProperties;
274
- #requiredProperties = {};
275
- #optionalProperties = {};
276
- #neverProperties = /* @__PURE__ */ new Set();
285
+ properties = /* @__PURE__ */ new Map();
286
+ additionalProperties;
277
287
  constructor(schema) {
278
288
  super();
279
289
  var _a;
280
290
  const _b = schema, { [_a = additionalValidator]: additional } = _b, properties = __objRest(_b, [__restKey(_a)]);
281
291
  if (additional)
282
- this.#additionalProperties = getValidator(additional);
292
+ this.additionalProperties = getValidator(additional);
283
293
  for (const key of Object.keys(properties)) {
284
294
  const definition = properties[key];
285
295
  if (definition === never) {
286
- this.#neverProperties.add(key);
296
+ this.properties.set(key, void 0);
287
297
  } else if (isModifier(definition)) {
288
- (definition.optional ? this.#optionalProperties : this.#requiredProperties)[key] = definition[modifierValidator];
298
+ this.properties.set(key, {
299
+ validator: definition[modifierValidator],
300
+ readonly: definition.readonly,
301
+ optional: definition.optional
302
+ });
289
303
  } else {
290
- this.#requiredProperties[key] = getValidator(definition);
304
+ this.properties.set(key, { validator: getValidator(definition) });
291
305
  }
292
306
  }
293
307
  this.schema = schema;
@@ -298,43 +312,29 @@ var ObjectValidator = class extends Validator {
298
312
  const record = value;
299
313
  const builder = new ValidationErrorBuilder();
300
314
  const clone = {};
301
- for (const [key, validator] of Object.entries(this.#requiredProperties)) {
302
- if (record[key] === void 0) {
303
- builder.record("Required property missing", key);
315
+ for (const [key, property] of this.properties.entries()) {
316
+ const { validator, optional: optional2 } = property || {};
317
+ if (!validator) {
318
+ if (record[key] === void 0)
319
+ continue;
320
+ if (options.stripForbiddenProperties)
321
+ continue;
322
+ builder.record("Forbidden property", key);
304
323
  continue;
305
324
  }
306
- try {
307
- clone[key] = validator.validate(record[key], options);
308
- } catch (error) {
309
- builder.record(error, key);
310
- }
311
- }
312
- for (const [key, validator] of Object.entries(this.#optionalProperties)) {
313
- if (record[key] === void 0)
325
+ if (record[key] === void 0) {
326
+ if (!optional2)
327
+ builder.record("Required property missing", key);
314
328
  continue;
329
+ }
315
330
  try {
316
331
  clone[key] = validator.validate(record[key], options);
317
332
  } catch (error) {
318
333
  builder.record(error, key);
319
334
  }
320
335
  }
321
- for (const key of this.#neverProperties) {
322
- if (record[key] === void 0)
323
- continue;
324
- if (options.stripForbiddenProperties)
325
- continue;
326
- builder.record("Forbidden property", key);
327
- }
328
- const additional = this.#additionalProperties;
329
- const additionalKeys = Object.keys(record).filter((k) => {
330
- if (k in this.#requiredProperties)
331
- return false;
332
- if (k in this.#optionalProperties)
333
- return false;
334
- if (this.#neverProperties.has(k))
335
- return false;
336
- return true;
337
- });
336
+ const additionalKeys = Object.keys(record).filter((k) => !this.properties.has(k));
337
+ const additional = this.additionalProperties;
338
338
  if (additional) {
339
339
  additionalKeys.forEach((key) => {
340
340
  if (record[key] === void 0)
@@ -354,19 +354,17 @@ var ObjectValidator = class extends Validator {
354
354
  return builder.assert(clone);
355
355
  }
356
356
  };
357
- var anyObjectValidator = new class extends Validator {
358
- validate(value) {
359
- assertValidation(typeof value == "object", 'Value is not an "object"');
360
- assertValidation(value !== null, 'Value is "null"');
361
- return value;
362
- }
363
- }();
357
+ var anyObjectValidator = new AnyObjectValidator();
364
358
  function _object(schema) {
365
359
  if (!schema)
366
360
  return anyObjectValidator;
367
- return Object.defineProperty(schema, schemaValidator, {
368
- value: new ObjectValidator(schema),
369
- enumerable: false
361
+ const validator = new ObjectValidator(schema);
362
+ function* iterator() {
363
+ yield { [restValidator]: validator };
364
+ }
365
+ return Object.defineProperties(schema, {
366
+ [schemaValidator]: { value: validator, enumerable: false },
367
+ [Symbol.iterator]: { value: iterator, enumerable: false }
370
368
  });
371
369
  }
372
370
  var object = makeTupleRestIterable(_object);
@@ -461,6 +459,12 @@ function allOf(...args) {
461
459
  }
462
460
 
463
461
  // src/validators/array.ts
462
+ var AnyArrayValidator = class extends Validator {
463
+ validate(value, options) {
464
+ assertValidation(Array.isArray(value), 'Value is not an "array"');
465
+ return [...value];
466
+ }
467
+ };
464
468
  var ArrayValidator = class extends Validator {
465
469
  maxItems;
466
470
  minItems;
@@ -505,12 +509,7 @@ var ArrayValidator = class extends Validator {
505
509
  return builder.assert(clone);
506
510
  }
507
511
  };
508
- var anyArrayValidator = new class extends Validator {
509
- validate(value) {
510
- assertValidation(Array.isArray(value), 'Value is not an "array"');
511
- return value;
512
- }
513
- }();
512
+ var anyArrayValidator = new AnyArrayValidator();
514
513
  function _array(options) {
515
514
  if (!options)
516
515
  return anyArrayValidator;
@@ -578,17 +577,33 @@ function _date(constraints) {
578
577
  var date = makeTupleRestIterable(_date);
579
578
 
580
579
  // src/validators/number.ts
581
- var _isMultipleOf;
582
- var _NumberValidator = class extends Validator {
580
+ var PRECISION = 6;
581
+ var MULTIPLIER = Math.pow(10, PRECISION);
582
+ function countDecimals(n) {
583
+ const match = n.toExponential().match(/^\d+(\.\d+)?e([+-]\d+)$/);
584
+ if (!match)
585
+ throw new RangeError(`Can't calculate digits for number "${n}"`);
586
+ const digits = (match[1] || ".").length - 1 - parseInt(match[2]);
587
+ return digits < 0 ? 0 : digits;
588
+ }
589
+ var AnyNumberValidator = class extends Validator {
590
+ validate(value) {
591
+ assertValidation(typeof value == "number", 'Value is not a "number"');
592
+ assertValidation(!isNaN(value), 'Number is "NaN"');
593
+ return value;
594
+ }
595
+ };
596
+ var NumberValidator = class extends Validator {
597
+ #isMultipleOf;
598
+ allowNaN;
599
+ exclusiveMaximum;
600
+ exclusiveMinimum;
601
+ maximum;
602
+ minimum;
603
+ multipleOf;
604
+ brand;
583
605
  constructor(constraints = {}) {
584
606
  super();
585
- __privateAdd(this, _isMultipleOf, void 0);
586
- __publicField(this, "allowNaN");
587
- __publicField(this, "exclusiveMaximum");
588
- __publicField(this, "exclusiveMinimum");
589
- __publicField(this, "maximum");
590
- __publicField(this, "minimum");
591
- __publicField(this, "multipleOf");
592
607
  const {
593
608
  allowNaN = false,
594
609
  exclusiveMaximum,
@@ -597,6 +612,8 @@ var _NumberValidator = class extends Validator {
597
612
  minimum = Number.NEGATIVE_INFINITY,
598
613
  multipleOf
599
614
  } = constraints;
615
+ if ("brand" in constraints)
616
+ this.brand = constraints.brand;
600
617
  assertSchema(maximum >= minimum, `Constraint "minimum" (${minimum}) is greater than "maximum" (${maximum})`);
601
618
  if (exclusiveMaximum !== void 0) {
602
619
  assertSchema(exclusiveMaximum > minimum, `Constraint "exclusiveMaximum" (${exclusiveMaximum}) must be greater than "minimum" (${minimum})`);
@@ -609,13 +626,19 @@ var _NumberValidator = class extends Validator {
609
626
  }
610
627
  if (multipleOf !== void 0) {
611
628
  assertSchema(multipleOf > 0, `Constraint "multipleOf" (${multipleOf}) must be greater than zero`);
612
- const bigMultipleOf = multipleOf * _NumberValidator.PRECISION;
613
- const bigInteger = bigMultipleOf % _NumberValidator.PRECISION;
614
- const bigDecimal = bigMultipleOf - Math.trunc(bigMultipleOf);
615
- if (bigInteger === 0) {
616
- __privateSet(this, _isMultipleOf, (value) => !(value % multipleOf));
617
- } else if (bigDecimal === 0) {
618
- __privateSet(this, _isMultipleOf, (value) => !(value * _NumberValidator.PRECISION % bigMultipleOf));
629
+ const decimals = countDecimals(multipleOf);
630
+ if (decimals === 0) {
631
+ this.#isMultipleOf = (value) => !(value % multipleOf);
632
+ } else if (decimals <= PRECISION) {
633
+ this.#isMultipleOf = (value) => {
634
+ try {
635
+ if (countDecimals(value) > PRECISION)
636
+ return false;
637
+ return !(value * MULTIPLIER % (multipleOf * MULTIPLIER));
638
+ } catch (error) {
639
+ throw new ValidationError(error.message);
640
+ }
641
+ };
619
642
  } else {
620
643
  assertSchema(false, `Constraint "multipleOf" (${multipleOf}) requires too much precision`);
621
644
  }
@@ -637,30 +660,28 @@ var _NumberValidator = class extends Validator {
637
660
  assertValidation(value <= this.maximum, `Number is greater than ${this.maximum}`);
638
661
  assertValidation(this.exclusiveMinimum == void 0 || value > this.exclusiveMinimum, `Number is less than or equal to ${this.exclusiveMinimum}`);
639
662
  assertValidation(this.exclusiveMaximum == void 0 || value < this.exclusiveMaximum, `Number is greater than or equal to ${this.exclusiveMaximum}`);
640
- assertValidation(__privateGet(this, _isMultipleOf) ? __privateGet(this, _isMultipleOf).call(this, value) : true, `Number is not a multiple of ${this.multipleOf}`);
663
+ assertValidation(this.#isMultipleOf ? this.#isMultipleOf(value) : true, `Number is not a multiple of ${this.multipleOf}`);
641
664
  return value;
642
665
  }
643
666
  };
644
- var NumberValidator = _NumberValidator;
645
- _isMultipleOf = new WeakMap();
646
- __publicField(NumberValidator, "PRECISION", 1e6);
647
- var anyNumberValidator = new class extends Validator {
648
- validate(value) {
649
- assertValidation(typeof value == "number", 'Value is not a "number"');
650
- assertValidation(!isNaN(value), 'Number is "NaN"');
651
- return value;
652
- }
653
- }();
667
+ var anyNumberValidator = new AnyNumberValidator();
654
668
  function _number(constraints) {
655
669
  return constraints ? new NumberValidator(constraints) : anyNumberValidator;
656
670
  }
657
671
  var number = makeTupleRestIterable(_number);
658
672
 
659
673
  // src/validators/string.ts
674
+ var AnyStringValidator = class extends Validator {
675
+ validate(value) {
676
+ assertValidation(typeof value == "string", 'Value is not a "string"');
677
+ return value;
678
+ }
679
+ };
660
680
  var StringValidator = class extends Validator {
661
681
  maxLength;
662
682
  minLength;
663
683
  pattern;
684
+ brand;
664
685
  constructor(constraints = {}) {
665
686
  super();
666
687
  const {
@@ -668,6 +689,8 @@ var StringValidator = class extends Validator {
668
689
  maxLength = Number.MAX_SAFE_INTEGER,
669
690
  pattern
670
691
  } = constraints;
692
+ if ("brand" in constraints)
693
+ this.brand = constraints.brand;
671
694
  assertSchema(minLength >= 0, `Constraint "minLength" (${minLength}) must be non-negative`);
672
695
  assertSchema(maxLength >= 0, `Constraint "maxLength" (${maxLength}) must be non-negative`);
673
696
  assertSchema(minLength <= maxLength, `Constraint "minLength" (${minLength}) is greater than "maxLength" (${maxLength})`);
@@ -683,17 +706,95 @@ var StringValidator = class extends Validator {
683
706
  return value;
684
707
  }
685
708
  };
686
- var anyStringValidator = new class extends Validator {
687
- validate(value) {
688
- assertValidation(typeof value == "string", 'Value is not a "string"');
689
- return value;
690
- }
691
- }();
709
+ var anyStringValidator = new AnyStringValidator();
692
710
  function _string(constraints) {
693
711
  return constraints ? new StringValidator(constraints) : anyStringValidator;
694
712
  }
695
713
  var string = makeTupleRestIterable(_string);
696
714
 
715
+ // src/validators/url.ts
716
+ var KEYS = [
717
+ "href",
718
+ "origin",
719
+ "protocol",
720
+ "username",
721
+ "password",
722
+ "host",
723
+ "hostname",
724
+ "port",
725
+ "pathname",
726
+ "search",
727
+ "hash"
728
+ ];
729
+ var OPTIONS = {
730
+ stripAdditionalProperties: false,
731
+ stripForbiddenProperties: false
732
+ };
733
+ var URLValidator = class extends Validator {
734
+ href;
735
+ origin;
736
+ protocol;
737
+ username;
738
+ password;
739
+ host;
740
+ hostname;
741
+ port;
742
+ pathname;
743
+ search;
744
+ hash;
745
+ searchParams;
746
+ constructor(constraints = {}) {
747
+ super();
748
+ for (const key of KEYS) {
749
+ const constraint = constraints[key];
750
+ if (typeof constraint === "string") {
751
+ this[key] = new ConstantValidator(constraint);
752
+ } else if (constraint) {
753
+ this[key] = constraint;
754
+ }
755
+ }
756
+ if (constraints.searchParams) {
757
+ this.searchParams = new ObjectValidator(constraints.searchParams);
758
+ }
759
+ }
760
+ validate(value) {
761
+ let url2;
762
+ try {
763
+ url2 = value instanceof URL ? value : new URL(value);
764
+ } catch (error) {
765
+ throw new ValidationError('Value could not be converted to a "URL"');
766
+ }
767
+ const builder = new ValidationErrorBuilder();
768
+ for (const key of KEYS) {
769
+ const validator = this[key];
770
+ if (validator) {
771
+ try {
772
+ validator.validate(url2[key], OPTIONS);
773
+ } catch (error) {
774
+ builder.record(error, key);
775
+ }
776
+ }
777
+ }
778
+ if (this.searchParams) {
779
+ const parameters = {};
780
+ for (const param of url2.searchParams.keys()) {
781
+ parameters[param] = url2.searchParams.get(param);
782
+ }
783
+ try {
784
+ this.searchParams.validate(parameters, OPTIONS);
785
+ } catch (error) {
786
+ builder.record(error, "searchParams");
787
+ }
788
+ }
789
+ return builder.assert(url2);
790
+ }
791
+ };
792
+ var anyURLValidator = new URLValidator();
793
+ function _url(constraints) {
794
+ return constraints ? new URLValidator(constraints) : anyURLValidator;
795
+ }
796
+ var url = makeTupleRestIterable(_url);
797
+
697
798
  // src/index.ts
698
799
  function validate(validation, value, options = {}) {
699
800
  const opts = __spreadValues({
@@ -702,9 +803,20 @@ function validate(validation, value, options = {}) {
702
803
  }, options);
703
804
  return getValidator(validation).validate(value, opts);
704
805
  }
806
+ function strip(validation, value, options = {}) {
807
+ const opts = __spreadValues({
808
+ stripAdditionalProperties: true,
809
+ stripForbiddenProperties: false
810
+ }, options);
811
+ return getValidator(validation).validate(value, opts);
812
+ }
705
813
  // Annotate the CommonJS export names for ESM import in node:
706
814
  0 && (module.exports = {
707
815
  AllOfValidator,
816
+ AnyArrayValidator,
817
+ AnyNumberValidator,
818
+ AnyObjectValidator,
819
+ AnyStringValidator,
708
820
  AnyValidator,
709
821
  ArrayValidator,
710
822
  BooleanValidator,
@@ -715,9 +827,17 @@ function validate(validation, value, options = {}) {
715
827
  OneOfValidator,
716
828
  StringValidator,
717
829
  TupleValidator,
830
+ URLValidator,
718
831
  ValidationError,
719
832
  ValidationErrorBuilder,
720
833
  Validator,
834
+ _allowAdditionalProperties,
835
+ _array,
836
+ _date,
837
+ _number,
838
+ _object,
839
+ _string,
840
+ _url,
721
841
  additionalValidator,
722
842
  allOf,
723
843
  allowAdditionalProperties,
@@ -741,7 +861,9 @@ function validate(validation, value, options = {}) {
741
861
  restValidator,
742
862
  schemaValidator,
743
863
  string,
864
+ strip,
744
865
  tuple,
866
+ url,
745
867
  validate
746
868
  });
747
- //# sourceMappingURL=index.cjs.map
869
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/index.ts", "../src/errors.ts", "../src/types.ts", "../src/validators/any.ts", "../src/validators/constant.ts", "../src/validators/tuple.ts", "../src/validators/object.ts", "../src/utilities.ts", "../src/schema.ts", "../src/validators/union.ts", "../src/validators/array.ts", "../src/validators/boolean.ts", "../src/validators/date.ts", "../src/validators/number.ts", "../src/validators/string.ts", "../src/validators/url.ts"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }