@fgv/ts-utils 1.2.0-alpha.2 → 1.3.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.
Files changed (77) hide show
  1. package/LICENSE +0 -0
  2. package/README.md +4 -0
  3. package/brand.d.ts +2 -0
  4. package/brand.d.ts.map +1 -0
  5. package/brand.js +1 -1
  6. package/converter.d.ts +185 -73
  7. package/converter.d.ts.map +1 -0
  8. package/converter.js +104 -51
  9. package/converters.d.ts +440 -182
  10. package/converters.d.ts.map +1 -0
  11. package/converters.js +358 -209
  12. package/csvHelpers.d.ts +7 -0
  13. package/csvHelpers.d.ts.map +1 -0
  14. package/csvHelpers.js +14 -4
  15. package/extendedArray.d.ts +46 -0
  16. package/extendedArray.d.ts.map +1 -0
  17. package/extendedArray.js +53 -8
  18. package/formatter.d.ts +53 -0
  19. package/formatter.d.ts.map +1 -0
  20. package/formatter.js +27 -4
  21. package/hash.d.ts +51 -0
  22. package/hash.d.ts.map +1 -0
  23. package/hash.js +168 -0
  24. package/index.d.ts +6 -2
  25. package/index.d.ts.map +1 -0
  26. package/index.js +15 -5
  27. package/logger.d.ts +3 -2
  28. package/logger.d.ts.map +1 -0
  29. package/logger.js +12 -12
  30. package/package.json +24 -20
  31. package/rangeOf.d.ts +96 -0
  32. package/rangeOf.d.ts.map +1 -0
  33. package/rangeOf.js +81 -2
  34. package/result.d.ts +391 -39
  35. package/result.d.ts.map +1 -0
  36. package/result.js +257 -49
  37. package/ts-utils.d.ts +2451 -0
  38. package/tsdoc-metadata.json +11 -0
  39. package/utils.d.ts +49 -27
  40. package/utils.d.ts.map +1 -0
  41. package/utils.js +53 -36
  42. package/validation/boolean.d.ts +27 -0
  43. package/validation/boolean.d.ts.map +1 -0
  44. package/validation/boolean.js +59 -0
  45. package/validation/classes.d.ts +5 -1
  46. package/validation/classes.d.ts.map +1 -0
  47. package/validation/classes.js +9 -2
  48. package/validation/field.d.ts +30 -0
  49. package/validation/field.d.ts.map +1 -0
  50. package/validation/field.js +23 -5
  51. package/validation/genericValidator.d.ts +41 -22
  52. package/validation/genericValidator.d.ts.map +1 -0
  53. package/validation/genericValidator.js +25 -26
  54. package/validation/index.d.ts +5 -3
  55. package/validation/index.d.ts.map +1 -0
  56. package/validation/index.js +15 -8
  57. package/validation/number.d.ts +20 -0
  58. package/validation/number.d.ts.map +1 -0
  59. package/validation/number.js +17 -2
  60. package/validation/object.d.ts +76 -11
  61. package/validation/object.d.ts.map +1 -0
  62. package/validation/object.js +52 -14
  63. package/validation/string.d.ts +20 -0
  64. package/validation/string.d.ts.map +1 -0
  65. package/validation/string.js +17 -2
  66. package/validation/traits.d.ts +50 -1
  67. package/validation/traits.d.ts.map +1 -0
  68. package/validation/traits.js +15 -2
  69. package/validation/validator.d.ts +44 -23
  70. package/validation/validator.d.ts.map +1 -0
  71. package/validation/validator.js +1 -1
  72. package/validation/validatorBase.d.ts +16 -1
  73. package/validation/validatorBase.d.ts.map +1 -0
  74. package/validation/validatorBase.js +7 -1
  75. package/validation/validators.d.ts +26 -2
  76. package/validation/validators.d.ts.map +1 -0
  77. package/validation/validators.js +26 -8
@@ -2,64 +2,83 @@ import { Constraint, Validator, ValidatorOptions } from './validator';
2
2
  import { ConstraintTrait, ValidatorTraits } from './traits';
3
3
  import { Failure, Result } from '../result';
4
4
  import { Brand } from '../brand';
5
+ /**
6
+ * Type for a validation function, which validates that a supplied `unknown`
7
+ * value is a valid value of type `<T>`, possibly as influenced by
8
+ * an optionally-supplied validation context of type `<TC>`.
9
+ * @public
10
+ */
5
11
  export declare type ValidatorFunc<T, TC> = (from: unknown, context?: TC) => boolean | Failure<T>;
12
+ /**
13
+ * Options used to initialize a {@link Validation.Base.GenericValidator | GenericValidator}.
14
+ * @public
15
+ */
6
16
  export interface GenericValidatorConstructorParams<T, TC> {
7
17
  options?: ValidatorOptions<TC>;
8
18
  traits?: Partial<ValidatorTraits>;
9
19
  validator?: ValidatorFunc<T, TC>;
10
20
  }
11
21
  /**
12
- * In-place validation that a supplied unknown matches a requested
13
- * schema.
22
+ * Generic base implementation for an in-place {@link Validation.Validator | Validator}.
23
+ * @public
14
24
  */
15
25
  export declare class GenericValidator<T, TC = undefined> implements Validator<T, TC> {
26
+ /**
27
+ * {@inheritdoc Validation.Validator.traits}
28
+ */
16
29
  readonly traits: ValidatorTraits;
30
+ /**
31
+ * @internal
32
+ */
17
33
  protected readonly _validator: ValidatorFunc<T, TC>;
34
+ /**
35
+ * @internal
36
+ */
18
37
  protected readonly _options: ValidatorOptions<TC>;
38
+ /**
39
+ * Constructs a new {@link Validation.Base.GenericValidator | GenericValidator<T>}.
40
+ * @param params - The {@link Validation.Base.GenericValidatorConstructorParams | constructor params}
41
+ * used to configure validation.
42
+ */
19
43
  constructor(params: Partial<GenericValidatorConstructorParams<T, TC>>);
20
44
  /**
21
- * Indicates whether this element is explicitly optional
45
+ * {@inheritdoc Validation.Validator.isOptional}
22
46
  */
23
47
  get isOptional(): boolean;
24
48
  /**
25
- * Returns the brand for a branded type
49
+ * {@inheritdoc Validation.Validator.brand}
26
50
  */
27
51
  get brand(): string | undefined;
28
52
  /**
29
- * Tests to see if a supplied unknown value matches this
30
- * validation.
31
- * @param from The unknown to be tested
32
- * @param context optional context used for validation
53
+ * {@inheritdoc Validation.Validator.validate}
33
54
  */
34
55
  validate(from: unknown, context?: TC): Result<T>;
35
56
  /**
36
- * Tests to see if a supplied unknown value matches this
37
- * validation. Accepts undefined.
38
- * @param from The unknown to be tested
39
- * @param context optional context used for validation
57
+ * {@inheritdoc Validation.Validator.validateOptional}
40
58
  */
41
59
  validateOptional(from: unknown, context?: TC): Result<T | undefined>;
42
60
  /**
43
- * Non-throwing type guard
44
- * @param from The value to be tested
45
- * @param context Optional context for the test
61
+ * {@inheritdoc Validation.Validator.guard}
46
62
  */
47
63
  guard(from: unknown, context?: TC): from is T;
48
64
  /**
49
- * Creates an in-place validator for an optional value.
65
+ * {@inheritdoc Validation.Validator.optional}
50
66
  */
51
67
  optional(): Validator<T | undefined, TC>;
52
68
  /**
53
- * Creates a validator which applies additional constraints.
54
- * @param constraint the constraint to be applied
55
- * @param trait optional trait to be applied to this constraint
69
+ * {@inheritdoc Validation.Validator.withConstraint}
56
70
  */
57
71
  withConstraint(constraint: Constraint<T>, trait?: ConstraintTrait): Validator<T, TC>;
58
72
  /**
59
- * Creates a validator which produces a branded result on successful
60
- * conversion.
61
- * @param brand The brand to be applied
73
+ * {@inheritdoc Validation.Validator.brand}
62
74
  */
63
75
  withBrand<B extends string>(brand: B): Validator<Brand<T, B>, TC>;
76
+ /**
77
+ * Gets a default or explicit context.
78
+ * @param explicitContext - Optional explicit context.
79
+ * @returns The appropriate context to use.
80
+ * @internal
81
+ */
64
82
  protected _context(explicitContext?: TC): TC | undefined;
65
83
  }
84
+ //# sourceMappingURL=genericValidator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genericValidator.d.ts","sourceRoot":"","sources":["../../src/validation/genericValidator.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,EAAiB,MAAM,WAAW,CAAC;AAE3D,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC;;;;;GAKG;AACH,oBAAY,aAAa,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEzF;;;GAGG;AACH,MAAM,WAAW,iCAAiC,CAAC,CAAC,EAAE,EAAE;IACpD,OAAO,CAAC,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAClC,SAAS,CAAC,EAAE,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;CACnC;AAED;;;GAGG;AACH,qBAAa,gBAAgB,CAAC,CAAC,EAAE,EAAE,GAAG,SAAS,CAAE,YAAW,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;IACxE;;OAEG;IACH,SAAgB,MAAM,EAAE,eAAe,CAAC;IAExC;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpD;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAElD;;;;OAIG;gBACgB,MAAM,EAAE,OAAO,CAAC,iCAAiC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAS5E;;OAEG;IACH,IAAW,UAAU,IAAI,OAAO,CAE/B;IAED;;OAEG;IACH,IAAW,KAAK,IAAI,MAAM,GAAG,SAAS,CAErC;IAED;;OAEG;IACI,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;IAQvD;;OAEG;IACI,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;IAI3E;;OAEG;IACI,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,IAAI,IAAI,CAAC;IAIpD;;OAEG;IACI,QAAQ,IAAI,SAAS,CAAC,CAAC,GAAG,SAAS,EAAE,EAAE,CAAC;IAU/C;;OAEG;IACI,cAAc,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;IAmB3F;;OAEG;IACI,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;IAaxE;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,SAAS;CAG3D"}
@@ -25,10 +25,15 @@ exports.GenericValidator = void 0;
25
25
  const traits_1 = require("./traits");
26
26
  const result_1 = require("../result");
27
27
  /**
28
- * In-place validation that a supplied unknown matches a requested
29
- * schema.
28
+ * Generic base implementation for an in-place {@link Validation.Validator | Validator}.
29
+ * @public
30
30
  */
31
31
  class GenericValidator {
32
+ /**
33
+ * Constructs a new {@link Validation.Base.GenericValidator | GenericValidator<T>}.
34
+ * @param params - The {@link Validation.Base.GenericValidatorConstructorParams | constructor params}
35
+ * used to configure validation.
36
+ */
32
37
  constructor(params) {
33
38
  var _a;
34
39
  if (!params.validator) {
@@ -39,49 +44,41 @@ class GenericValidator {
39
44
  this.traits = new traits_1.ValidatorTraits(params.traits);
40
45
  }
41
46
  /**
42
- * Indicates whether this element is explicitly optional
47
+ * {@inheritdoc Validation.Validator.isOptional}
43
48
  */
44
49
  get isOptional() {
45
50
  return this.traits.isOptional;
46
51
  }
47
52
  /**
48
- * Returns the brand for a branded type
53
+ * {@inheritdoc Validation.Validator.brand}
49
54
  */
50
55
  get brand() {
51
56
  return this.traits.brand;
52
57
  }
53
58
  /**
54
- * Tests to see if a supplied unknown value matches this
55
- * validation.
56
- * @param from The unknown to be tested
57
- * @param context optional context used for validation
59
+ * {@inheritdoc Validation.Validator.validate}
58
60
  */
59
61
  validate(from, context) {
60
62
  const result = this._validator(from, this._context(context));
61
63
  if (typeof result === 'boolean') {
62
- return result ? result_1.succeed(from) : result_1.fail('Invalid value');
64
+ return result ? (0, result_1.succeed)(from) : (0, result_1.fail)('Invalid value');
63
65
  }
64
66
  return result;
65
67
  }
66
68
  /**
67
- * Tests to see if a supplied unknown value matches this
68
- * validation. Accepts undefined.
69
- * @param from The unknown to be tested
70
- * @param context optional context used for validation
69
+ * {@inheritdoc Validation.Validator.validateOptional}
71
70
  */
72
71
  validateOptional(from, context) {
73
- return (from === undefined) ? result_1.succeed(undefined) : this.validate(from, context);
72
+ return (from === undefined) ? (0, result_1.succeed)(undefined) : this.validate(from, context);
74
73
  }
75
74
  /**
76
- * Non-throwing type guard
77
- * @param from The value to be tested
78
- * @param context Optional context for the test
75
+ * {@inheritdoc Validation.Validator.guard}
79
76
  */
80
77
  guard(from, context) {
81
78
  return (this._validator(from, this._context(context)) === true);
82
79
  }
83
80
  /**
84
- * Creates an in-place validator for an optional value.
81
+ * {@inheritdoc Validation.Validator.optional}
85
82
  */
86
83
  optional() {
87
84
  return new GenericValidator({
@@ -93,9 +90,7 @@ class GenericValidator {
93
90
  });
94
91
  }
95
92
  /**
96
- * Creates a validator which applies additional constraints.
97
- * @param constraint the constraint to be applied
98
- * @param trait optional trait to be applied to this constraint
93
+ * {@inheritdoc Validation.Validator.withConstraint}
99
94
  */
100
95
  withConstraint(constraint, trait) {
101
96
  trait = trait !== null && trait !== void 0 ? trait : { type: 'function' };
@@ -106,7 +101,7 @@ class GenericValidator {
106
101
  if (typeof constraintResult === 'boolean') {
107
102
  return constraintResult
108
103
  ? true
109
- : result_1.fail(`Value ${JSON.stringify(from)} does not meet constraint.`);
104
+ : (0, result_1.fail)(`Value ${JSON.stringify(from)} does not meet constraint.`);
110
105
  }
111
106
  return constraintResult;
112
107
  }
@@ -116,9 +111,7 @@ class GenericValidator {
116
111
  });
117
112
  }
118
113
  /**
119
- * Creates a validator which produces a branded result on successful
120
- * conversion.
121
- * @param brand The brand to be applied
114
+ * {@inheritdoc Validation.Validator.brand}
122
115
  */
123
116
  withBrand(brand) {
124
117
  if (this.brand) {
@@ -131,9 +124,15 @@ class GenericValidator {
131
124
  traits: { brand },
132
125
  });
133
126
  }
127
+ /**
128
+ * Gets a default or explicit context.
129
+ * @param explicitContext - Optional explicit context.
130
+ * @returns The appropriate context to use.
131
+ * @internal
132
+ */
134
133
  _context(explicitContext) {
135
134
  return explicitContext !== null && explicitContext !== void 0 ? explicitContext : this._options.defaultContext;
136
135
  }
137
136
  }
138
137
  exports.GenericValidator = GenericValidator;
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpY1ZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0aW9uL2dlbmVyaWNWYWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRzs7O0FBR0gscUNBQTREO0FBQzVELHNDQUEyRDtBQVkzRDs7O0dBR0c7QUFDSCxNQUFhLGdCQUFnQjtJQU16QixZQUFtQixNQUF5RDs7UUFDeEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUU7WUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1NBQ3JEO1FBQ0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBQSxNQUFNLENBQUMsT0FBTyxtQ0FBSSxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLHdCQUFlLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsVUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksUUFBUSxDQUFDLElBQWEsRUFBRSxPQUFZO1FBQ3ZDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUM3RCxJQUFJLE9BQU8sTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUM3QixPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsZ0JBQU8sQ0FBQyxJQUFTLENBQUMsQ0FBQyxDQUFD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RCxDQUFDO0NBQ0o7QUF4SEQsNENBd0hDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyMSBFcmlrIEZvcnR1bmVcbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG4gKiBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEVcbiAqIFNPRlRXQVJFLlxuICovXG5cbmltcG9ydCB7IENvbnN0cmFpbnQsIFZhbGlkYXRvciwgVmFsaWRhdG9yT3B0aW9ucyB9IGZyb20gJy4vdmFsaWRhdG9yJztcbmltcG9ydCB7IENvbnN0cmFpbnRUcmFpdCwgVmFsaWRhdG9yVHJhaXRzIH0gZnJvbSAnLi90cmFpdHMnO1xuaW1wb3J0IHsgRmFpbHVyZSwgUmVzdWx0LCBmYWlsLCBzdWNjZWVkIH0gZnJvbSAnLi4vcmVzdWx0JztcblxuaW1wb3J0IHsgQnJhbmQgfSBmcm9tICcuLi9icmFuZCc7XG5cbmV4cG9ydCB0eXBlIFZhbGlkYXRvckZ1bmM8VCwgVEM+ID0gKGZyb206IHVua25vd24sIGNvbnRleHQ/OiBUQykgPT4gYm9vbGVhbiB8IEZhaWx1cmU8VD47XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJpY1ZhbGlkYXRvckNvbnN0cnVjdG9yUGFyYW1zPFQsIFRDPiB7XG4gICAgb3B0aW9ucz86IFZhbGlkYXRvck9wdGlvbnM8VEM+LFxuICAgIHRyYWl0cz86IFBhcnRpYWw8VmFsaWRhdG9yVHJhaXRzPixcbiAgICB2YWxpZGF0b3I/OiBWYWxpZGF0b3JGdW5jPFQsIFRDPlxufVxuXG4vKipcbiAqIEluLXBsYWNlIHZhbGlkYXRpb24gdGhhdCBhIHN1cHBsaWVkIHVua25vd24gbWF0Y2hlcyBhIHJlcXVlc3RlZFxuICogc2NoZW1hLlxuICovXG5leHBvcnQgY2xhc3MgR2VuZXJpY1ZhbGlkYXRvcjxULCBUQyA9IHVuZGVmaW5lZD4gaW1wbGVtZW50cyBWYWxpZGF0b3I8VCwgVEM+IHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgdHJhaXRzOiBWYWxpZGF0b3JUcmFpdHM7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3ZhbGlkYXRvcjogVmFsaWRhdG9yRnVuYzxULCBUQz47XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9vcHRpb25zOiBWYWxpZGF0b3JPcHRpb25zPFRDPjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXJhbXM6IFBhcnRpYWw8R2VuZXJpY1ZhbGlkYXRvckNvbnN0cnVjdG9yUGFyYW1zPFQsIFRDPj4pIHtcbiAgICAgICAgaWYgKCFwYXJhbXMudmFsaWRhdG9yKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIHZhbGlkYXRvciBmdW5jdGlvbiBzdXBwbGllZCcpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3ZhbGlkYXRvciA9IHBhcmFtcy52YWxpZGF0b3I7XG4gICAgICAgIHRoaXMuX29wdGlvbnMgPSBwYXJhbXMub3B0aW9ucyA/PyB7fTtcbiAgICAgICAgdGhpcy50cmFpdHMgPSBuZXcgVmFsaWRhdG9yVHJhaXRzKHBhcmFtcy50cmFpdHMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluZGljYXRlcyB3aGV0aGVyIHRoaXMgZWxlbWVudCBpcyBleHBsaWNpdGx5IG9wdGlvbmFsXG4gICAgICovXG4gICAgcHVibGljIGdldCBpc09wdGlvbmFsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50cmFpdHMuaXNPcHRpb25hbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBicmFuZCBmb3IgYSBicmFuZGVkIHR5cGVcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGJyYW5kKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYWl0cy5icmFuZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUZXN0cyB0byBzZWUgaWYgYSBzdXBwbGllZCB1bmtub3duIHZhbHVlIG1hdGNoZXMgdGhpc1xuICAgICAqIHZhbGlkYXRpb24uXG4gICAgICogQHBhcmFtIGZyb20gVGhlIHVua25vd24gdG8gYmUgdGVzdGVkXG4gICAgICogQHBhcmFtIGNvbnRleHQgb3B0aW9uYWwgY29udGV4dCB1c2VkIGZvciB2YWxpZGF0aW9uXG4gICAgICovXG4gICAgcHVibGljIHZhbGlkYXRlKGZyb206IHVua25vd24sIGNvbnRleHQ/OiBUQyk6IFJlc3VsdDxUPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX3ZhbGlkYXRvcihmcm9tLCB0aGlzLl9jb250ZXh0KGNvbnRleHQpKTtcbiAgICAgICAgaWYgKHR5cGVvZiByZXN1bHQgPT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCA/IHN1Y2NlZWQoZnJvbSBhcyBUKSA6IGZhaWw8VD4oJ0ludmFsaWQgdmFsdWUnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRlc3RzIHRvIHNlZSBpZiBhIHN1cHBsaWVkIHVua25vd24gdmFsdWUgbWF0Y2hlcyB0aGlzXG4gICAgICogdmFsaWRhdGlvbi4gIEFjY2VwdHMgdW5kZWZpbmVkLlxuICAgICAqIEBwYXJhbSBmcm9tIFRoZSB1bmtub3duIHRvIGJlIHRlc3RlZFxuICAgICAqIEBwYXJhbSBjb250ZXh0IG9wdGlvbmFsIGNvbnRleHQgdXNlZCBmb3IgdmFsaWRhdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyB2YWxpZGF0ZU9wdGlvbmFsKGZyb206IHVua25vd24sIGNvbnRleHQ/OiBUQyk6IFJlc3VsdDxUIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiAoZnJvbSA9PT0gdW5kZWZpbmVkKSA/IHN1Y2NlZWQodW5kZWZpbmVkKSA6IHRoaXMudmFsaWRhdGUoZnJvbSwgY29udGV4dCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTm9uLXRocm93aW5nIHR5cGUgZ3VhcmRcbiAgICAgKiBAcGFyYW0gZnJvbSBUaGUgdmFsdWUgdG8gYmUgdGVzdGVkXG4gICAgICogQHBhcmFtIGNvbnRleHQgT3B0aW9uYWwgY29udGV4dCBmb3IgdGhlIHRlc3RcbiAgICAgKi9cbiAgICBwdWJsaWMgZ3VhcmQoZnJvbTogdW5rbm93biwgY29udGV4dD86IFRDKTogZnJvbSBpcyBUIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLl92YWxpZGF0b3IoZnJvbSwgdGhpcy5fY29udGV4dChjb250ZXh0KSkgPT09IHRydWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gaW4tcGxhY2UgdmFsaWRhdG9yIGZvciBhbiBvcHRpb25hbCB2YWx1ZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgb3B0aW9uYWwoKTogVmFsaWRhdG9yPFQgfCB1bmRlZmluZWQsIFRDPiB7XG4gICAgICAgIHJldHVybiBuZXcgR2VuZXJpY1ZhbGlkYXRvcih7XG4gICAgICAgICAgICB2YWxpZGF0b3I6IChmcm9tOiB1bmtub3duLCBjb250ZXh0PzogVEMpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKGZyb20gPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgICAgICAgfHwgdGhpcy5fdmFsaWRhdG9yKGZyb20sIHRoaXMuX2NvbnRleHQoY29udGV4dCkpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRyYWl0czogeyBpc09wdGlvbmFsOiB0cnVlIH0sXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSB2YWxpZGF0b3Igd2hpY2ggYXBwbGllcyBhZGRpdGlvbmFsIGNvbnN0cmFpbnRzLlxuICAgICAqIEBwYXJhbSBjb25zdHJhaW50IHRoZSBjb25zdHJhaW50IHRvIGJlIGFwcGxpZWRcbiAgICAgKiBAcGFyYW0gdHJhaXQgb3B0aW9uYWwgdHJhaXQgdG8gYmUgYXBwbGllZCB0byB0aGlzIGNvbnN0cmFpbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aENvbnN0cmFpbnQoY29uc3RyYWludDogQ29uc3RyYWludDxUPiwgdHJhaXQ/OiBDb25zdHJhaW50VHJhaXQpOiBWYWxpZGF0b3I8VCwgVEM+IHtcbiAgICAgICAgdHJhaXQgPSB0cmFpdCA/PyB7IHR5cGU6ICdmdW5jdGlvbicgfTtcbiAgICAgICAgcmV0dXJuIG5ldyBHZW5lcmljVmFsaWRhdG9yKHtcbiAgICAgICAgICAgIHZhbGlkYXRvcjogKGZyb206IHVua25vd24sIGNvbnRleHQ/OiBUQyk6IGJvb2xlYW4gfCBGYWlsdXJlPFQ+ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fdmFsaWRhdG9yKGZyb20sIHRoaXMuX2NvbnRleHQoY29udGV4dCkpID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnN0cmFpbnRSZXN1bHQgPSBjb25zdHJhaW50KGZyb20gYXMgVCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY29uc3RyYWludFJlc3VsdCA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29uc3RyYWludFJlc3VsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZmFpbChgVmFsdWUgJHtKU09OLnN0cmluZ2lmeShmcm9tKX0gZG9lcyBub3QgbWVldCBjb25zdHJhaW50LmApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb25zdHJhaW50UmVzdWx0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdHJhaXRzOiB7IGNvbnN0cmFpbnRzOiBbdHJhaXRdIH0sXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSB2YWxpZGF0b3Igd2hpY2ggcHJvZHVjZXMgYSBicmFuZGVkIHJlc3VsdCBvbiBzdWNjZXNzZnVsXG4gICAgICogY29udmVyc2lvbi5cbiAgICAgKiBAcGFyYW0gYnJhbmQgVGhlIGJyYW5kIHRvIGJlIGFwcGxpZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aEJyYW5kPEIgZXh0ZW5kcyBzdHJpbmc+KGJyYW5kOiBCKTogVmFsaWRhdG9yPEJyYW5kPFQsIEI+LCBUQz4ge1xuICAgICAgICBpZiAodGhpcy5icmFuZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgcmVwbGFjZSBleGlzdGluZyBicmFuZCBcIiR7dGhpcy5icmFuZH1cIiB3aXRoIFwiJHticmFuZH1cIi5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXcgR2VuZXJpY1ZhbGlkYXRvcjxCcmFuZDxULCBCPiwgVEM+KHtcbiAgICAgICAgICAgIHZhbGlkYXRvcjogKGZyb206IHVua25vd24sIGNvbnRleHQ/OiBUQykgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl92YWxpZGF0b3IoZnJvbSwgdGhpcy5fY29udGV4dChjb250ZXh0KSkgYXMgYm9vbGVhbiB8IEZhaWx1cmU8QnJhbmQ8VCwgQj4+O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRyYWl0czogeyBicmFuZCB9LFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2NvbnRleHQoZXhwbGljaXRDb250ZXh0PzogVEMpOiBUQyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiBleHBsaWNpdENvbnRleHQgPz8gdGhpcy5fb3B0aW9ucy5kZWZhdWx0Q29udGV4dDtcbiAgICB9XG59XG4iXX0=
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpY1ZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92YWxpZGF0aW9uL2dlbmVyaWNWYWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRzs7O0FBR0gscUNBQTREO0FBQzVELHNDQUEyRDtBQXNCM0Q7OztHQUdHO0FBQ0gsTUFBYSxnQkFBZ0I7SUFlekI7Ozs7T0FJRztJQUNILFlBQW1CLE1BQXlEOztRQUN4RSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRTtZQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7U0FDckQ7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFBLE1BQU0sQ0FBQyxPQUFPLG1DQUFJLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksd0JBQWUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7SUFDbEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRLENBQUMsSUFBYSxFQUFFLE9BQVk7UUFDdkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzdELElBQUksT0FBTyxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQzdCLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFBLGdCQUFPLEVBQUMsSUFB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SSxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztJQUMzRCxDQUFDO0NBQ0o7QUFoSUQsNENBZ0lDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyMSBFcmlrIEZvcnR1bmVcbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG4gKiBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEVcbiAqIFNPRlRXQVJFLlxuICovXG5cbmltcG9ydCB7IENvbnN0cmFpbnQsIFZhbGlkYXRvciwgVmFsaWRhdG9yT3B0aW9ucyB9IGZyb20gJy4vdmFsaWRhdG9yJztcbmltcG9ydCB7IENvbnN0cmFpbnRUcmFpdCwgVmFsaWRhdG9yVHJhaXRzIH0gZnJvbSAnLi90cmFpdHMnO1xuaW1wb3J0IHsgRmFpbHVyZSwgUmVzdWx0LCBmYWlsLCBzdWNjZWVkIH0gZnJvbSAnLi4vcmVzdWx0JztcblxuaW1wb3J0IHsgQnJhbmQgfSBmcm9tICcuLi9icmFuZCc7XG5cbi8qKlxuICogVHlwZSBmb3IgYSB2YWxpZGF0aW9uIGZ1bmN0aW9uLCB3aGljaCB2YWxpZGF0ZXMgdGhhdCBhIHN1cHBsaWVkIGB1bmtub3duYFxuICogdmFsdWUgaXMgYSB2YWxpZCB2YWx1ZSBvZiB0eXBlIGA8VD5gLCBwb3NzaWJseSBhcyBpbmZsdWVuY2VkIGJ5XG4gKiBhbiBvcHRpb25hbGx5LXN1cHBsaWVkIHZhbGlkYXRpb24gY29udGV4dCBvZiB0eXBlIGA8VEM+YC5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IHR5cGUgVmFsaWRhdG9yRnVuYzxULCBUQz4gPSAoZnJvbTogdW5rbm93biwgY29udGV4dD86IFRDKSA9PiBib29sZWFuIHwgRmFpbHVyZTxUPjtcblxuLyoqXG4gKiBPcHRpb25zIHVzZWQgdG8gaW5pdGlhbGl6ZSBhIHtAbGluayBWYWxpZGF0aW9uLkJhc2UuR2VuZXJpY1ZhbGlkYXRvciB8IEdlbmVyaWNWYWxpZGF0b3J9LlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyaWNWYWxpZGF0b3JDb25zdHJ1Y3RvclBhcmFtczxULCBUQz4ge1xuICAgIG9wdGlvbnM/OiBWYWxpZGF0b3JPcHRpb25zPFRDPixcbiAgICB0cmFpdHM/OiBQYXJ0aWFsPFZhbGlkYXRvclRyYWl0cz4sXG4gICAgdmFsaWRhdG9yPzogVmFsaWRhdG9yRnVuYzxULCBUQz5cbn1cblxuLyoqXG4gKiBHZW5lcmljIGJhc2UgaW1wbGVtZW50YXRpb24gZm9yIGFuIGluLXBsYWNlIHtAbGluayBWYWxpZGF0aW9uLlZhbGlkYXRvciB8IFZhbGlkYXRvcn0uXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjbGFzcyBHZW5lcmljVmFsaWRhdG9yPFQsIFRDID0gdW5kZWZpbmVkPiBpbXBsZW1lbnRzIFZhbGlkYXRvcjxULCBUQz4ge1xuICAgIC8qKlxuICAgICAqIHtAaW5oZXJpdGRvYyBWYWxpZGF0aW9uLlZhbGlkYXRvci50cmFpdHN9XG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IHRyYWl0czogVmFsaWRhdG9yVHJhaXRzO1xuXG4gICAgLyoqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF92YWxpZGF0b3I6IFZhbGlkYXRvckZ1bmM8VCwgVEM+O1xuICAgIC8qKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfb3B0aW9uczogVmFsaWRhdG9yT3B0aW9uczxUQz47XG5cbiAgICAvKipcbiAgICAgKiBDb25zdHJ1Y3RzIGEgbmV3IHtAbGluayBWYWxpZGF0aW9uLkJhc2UuR2VuZXJpY1ZhbGlkYXRvciB8IEdlbmVyaWNWYWxpZGF0b3I8VD59LlxuICAgICAqIEBwYXJhbSBwYXJhbXMgLSBUaGUge0BsaW5rIFZhbGlkYXRpb24uQmFzZS5HZW5lcmljVmFsaWRhdG9yQ29uc3RydWN0b3JQYXJhbXMgfCBjb25zdHJ1Y3RvciBwYXJhbXN9XG4gICAgICogdXNlZCB0byBjb25maWd1cmUgdmFsaWRhdGlvbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocGFyYW1zOiBQYXJ0aWFsPEdlbmVyaWNWYWxpZGF0b3JDb25zdHJ1Y3RvclBhcmFtczxULCBUQz4+KSB7XG4gICAgICAgIGlmICghcGFyYW1zLnZhbGlkYXRvcikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyB2YWxpZGF0b3IgZnVuY3Rpb24gc3VwcGxpZWQnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl92YWxpZGF0b3IgPSBwYXJhbXMudmFsaWRhdG9yO1xuICAgICAgICB0aGlzLl9vcHRpb25zID0gcGFyYW1zLm9wdGlvbnMgPz8ge307XG4gICAgICAgIHRoaXMudHJhaXRzID0gbmV3IFZhbGlkYXRvclRyYWl0cyhwYXJhbXMudHJhaXRzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiB7QGluaGVyaXRkb2MgVmFsaWRhdGlvbi5WYWxpZGF0b3IuaXNPcHRpb25hbH1cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGlzT3B0aW9uYWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYWl0cy5pc09wdGlvbmFsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHtAaW5oZXJpdGRvYyBWYWxpZGF0aW9uLlZhbGlkYXRvci5icmFuZH1cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGJyYW5kKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYWl0cy5icmFuZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiB7QGluaGVyaXRkb2MgVmFsaWRhdGlvbi5WYWxpZGF0b3IudmFsaWRhdGV9XG4gICAgICovXG4gICAgcHVibGljIHZhbGlkYXRlKGZyb206IHVua25vd24sIGNvbnRleHQ/OiBUQyk6IFJlc3VsdDxUPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX3ZhbGlkYXRvcihmcm9tLCB0aGlzLl9jb250ZXh0KGNvbnRleHQpKTtcbiAgICAgICAgaWYgKHR5cGVvZiByZXN1bHQgPT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCA/IHN1Y2NlZWQoZnJvbSBhcyBUKSA6IGZhaWw8VD4oJ0ludmFsaWQgdmFsdWUnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHtAaW5oZXJpdGRvYyBWYWxpZGF0aW9uLlZhbGlkYXRvci52YWxpZGF0ZU9wdGlvbmFsfVxuICAgICAqL1xuICAgIHB1YmxpYyB2YWxpZGF0ZU9wdGlvbmFsKGZyb206IHVua25vd24sIGNvbnRleHQ/OiBUQyk6IFJlc3VsdDxUIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiAoZnJvbSA9PT0gdW5kZWZpbmVkKSA/IHN1Y2NlZWQodW5kZWZpbmVkKSA6IHRoaXMudmFsaWRhdGUoZnJvbSwgY29udGV4dCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICoge0Bpbmhlcml0ZG9jIFZhbGlkYXRpb24uVmFsaWRhdG9yLmd1YXJkfVxuICAgICAqL1xuICAgIHB1YmxpYyBndWFyZChmcm9tOiB1bmtub3duLCBjb250ZXh0PzogVEMpOiBmcm9tIGlzIFQge1xuICAgICAgICByZXR1cm4gKHRoaXMuX3ZhbGlkYXRvcihmcm9tLCB0aGlzLl9jb250ZXh0KGNvbnRleHQpKSA9PT0gdHJ1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICoge0Bpbmhlcml0ZG9jIFZhbGlkYXRpb24uVmFsaWRhdG9yLm9wdGlvbmFsfVxuICAgICAqL1xuICAgIHB1YmxpYyBvcHRpb25hbCgpOiBWYWxpZGF0b3I8VCB8IHVuZGVmaW5lZCwgVEM+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBHZW5lcmljVmFsaWRhdG9yKHtcbiAgICAgICAgICAgIHZhbGlkYXRvcjogKGZyb206IHVua25vd24sIGNvbnRleHQ/OiBUQykgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiAoZnJvbSA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgICAgICB8fCB0aGlzLl92YWxpZGF0b3IoZnJvbSwgdGhpcy5fY29udGV4dChjb250ZXh0KSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdHJhaXRzOiB7IGlzT3B0aW9uYWw6IHRydWUgfSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICoge0Bpbmhlcml0ZG9jIFZhbGlkYXRpb24uVmFsaWRhdG9yLndpdGhDb25zdHJhaW50fVxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoQ29uc3RyYWludChjb25zdHJhaW50OiBDb25zdHJhaW50PFQ+LCB0cmFpdD86IENvbnN0cmFpbnRUcmFpdCk6IFZhbGlkYXRvcjxULCBUQz4ge1xuICAgICAgICB0cmFpdCA9IHRyYWl0ID8/IHsgdHlwZTogJ2Z1bmN0aW9uJyB9O1xuICAgICAgICByZXR1cm4gbmV3IEdlbmVyaWNWYWxpZGF0b3Ioe1xuICAgICAgICAgICAgdmFsaWRhdG9yOiAoZnJvbTogdW5rbm93biwgY29udGV4dD86IFRDKTogYm9vbGVhbiB8IEZhaWx1cmU8VD4gPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl92YWxpZGF0b3IoZnJvbSwgdGhpcy5fY29udGV4dChjb250ZXh0KSkgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29uc3RyYWludFJlc3VsdCA9IGNvbnN0cmFpbnQoZnJvbSBhcyBUKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjb25zdHJhaW50UmVzdWx0ID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb25zdHJhaW50UmVzdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBmYWlsKGBWYWx1ZSAke0pTT04uc3RyaW5naWZ5KGZyb20pfSBkb2VzIG5vdCBtZWV0IGNvbnN0cmFpbnQuYCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnN0cmFpbnRSZXN1bHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0cmFpdHM6IHsgY29uc3RyYWludHM6IFt0cmFpdF0gfSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICoge0Bpbmhlcml0ZG9jIFZhbGlkYXRpb24uVmFsaWRhdG9yLmJyYW5kfVxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoQnJhbmQ8QiBleHRlbmRzIHN0cmluZz4oYnJhbmQ6IEIpOiBWYWxpZGF0b3I8QnJhbmQ8VCwgQj4sIFRDPiB7XG4gICAgICAgIGlmICh0aGlzLmJyYW5kKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCByZXBsYWNlIGV4aXN0aW5nIGJyYW5kIFwiJHt0aGlzLmJyYW5kfVwiIHdpdGggXCIke2JyYW5kfVwiLmApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5ldyBHZW5lcmljVmFsaWRhdG9yPEJyYW5kPFQsIEI+LCBUQz4oe1xuICAgICAgICAgICAgdmFsaWRhdG9yOiAoZnJvbTogdW5rbm93biwgY29udGV4dD86IFRDKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRvcihmcm9tLCB0aGlzLl9jb250ZXh0KGNvbnRleHQpKSBhcyBib29sZWFuIHwgRmFpbHVyZTxCcmFuZDxULCBCPj47XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdHJhaXRzOiB7IGJyYW5kIH0sXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYSBkZWZhdWx0IG9yIGV4cGxpY2l0IGNvbnRleHQuXG4gICAgICogQHBhcmFtIGV4cGxpY2l0Q29udGV4dCAtIE9wdGlvbmFsIGV4cGxpY2l0IGNvbnRleHQuXG4gICAgICogQHJldHVybnMgVGhlIGFwcHJvcHJpYXRlIGNvbnRleHQgdG8gdXNlLlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBfY29udGV4dChleHBsaWNpdENvbnRleHQ/OiBUQyk6IFRDIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIGV4cGxpY2l0Q29udGV4dCA/PyB0aGlzLl9vcHRpb25zLmRlZmF1bHRDb250ZXh0O1xuICAgIH1cbn1cbiJdfQ==
@@ -1,5 +1,7 @@
1
- export * as Base from './genericValidator';
2
- export * as Classes from './classes';
3
1
  export * from './traits';
4
2
  export * from './validator';
5
- export * as Validators from './validators';
3
+ import * as Base from './genericValidator';
4
+ import * as Classes from './classes';
5
+ import * as Validators from './validators';
6
+ export { Base, Classes, Validators };
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAsBA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAE5B,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAC;AAC3C,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -22,7 +22,11 @@
22
22
  */
23
23
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
24
24
  if (k2 === undefined) k2 = k;
25
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
25
+ var desc = Object.getOwnPropertyDescriptor(m, k);
26
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
27
+ desc = { enumerable: true, get: function() { return m[k]; } };
28
+ }
29
+ Object.defineProperty(o, k2, desc);
26
30
  }) : (function(o, m, k, k2) {
27
31
  if (k2 === undefined) k2 = k;
28
32
  o[k2] = m[k];
@@ -32,6 +36,9 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
32
36
  }) : function(o, v) {
33
37
  o["default"] = v;
34
38
  });
39
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
40
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
41
+ };
35
42
  var __importStar = (this && this.__importStar) || function (mod) {
36
43
  if (mod && mod.__esModule) return mod;
37
44
  var result = {};
@@ -39,14 +46,14 @@ var __importStar = (this && this.__importStar) || function (mod) {
39
46
  __setModuleDefault(result, mod);
40
47
  return result;
41
48
  };
42
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
43
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
44
- };
45
49
  Object.defineProperty(exports, "__esModule", { value: true });
46
50
  exports.Validators = exports.Classes = exports.Base = void 0;
47
- exports.Base = __importStar(require("./genericValidator"));
48
- exports.Classes = __importStar(require("./classes"));
49
51
  __exportStar(require("./traits"), exports);
50
52
  __exportStar(require("./validator"), exports);
51
- exports.Validators = __importStar(require("./validators"));
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsMkRBQTJDO0FBQzNDLHFEQUFxQztBQUNyQywyQ0FBeUI7QUFDekIsOENBQTRCO0FBQzVCLDJEQUEyQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjEgRXJpayBGb3J0dW5lXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuICogY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG4gKiBTT0ZUV0FSRS5cbiAqL1xuXG5leHBvcnQgKiBhcyBCYXNlIGZyb20gJy4vZ2VuZXJpY1ZhbGlkYXRvcic7XG5leHBvcnQgKiBhcyBDbGFzc2VzIGZyb20gJy4vY2xhc3Nlcyc7XG5leHBvcnQgKiBmcm9tICcuL3RyYWl0cyc7XG5leHBvcnQgKiBmcm9tICcuL3ZhbGlkYXRvcic7XG5leHBvcnQgKiBhcyBWYWxpZGF0b3JzIGZyb20gJy4vdmFsaWRhdG9ycyc7XG4iXX0=
53
+ const Base = __importStar(require("./genericValidator"));
54
+ exports.Base = Base;
55
+ const Classes = __importStar(require("./classes"));
56
+ exports.Classes = Classes;
57
+ const Validators = __importStar(require("./validators"));
58
+ exports.Validators = Validators;
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdmFsaWRhdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVILDJDQUF5QjtBQUN6Qiw4Q0FBNEI7QUFFNUIseURBQTJDO0FBR2xDLG9CQUFJO0FBRmIsbURBQXFDO0FBRXRCLDBCQUFPO0FBRHRCLHlEQUEyQztBQUNuQixnQ0FBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjEgRXJpayBGb3J0dW5lXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuICogY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG4gKiBTT0ZUV0FSRS5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3RyYWl0cyc7XG5leHBvcnQgKiBmcm9tICcuL3ZhbGlkYXRvcic7XG5cbmltcG9ydCAqIGFzIEJhc2UgZnJvbSAnLi9nZW5lcmljVmFsaWRhdG9yJztcbmltcG9ydCAqIGFzIENsYXNzZXMgZnJvbSAnLi9jbGFzc2VzJztcbmltcG9ydCAqIGFzIFZhbGlkYXRvcnMgZnJvbSAnLi92YWxpZGF0b3JzJztcbmV4cG9ydCB7IEJhc2UsIENsYXNzZXMsIFZhbGlkYXRvcnMgfTtcbiJdfQ==
@@ -1,7 +1,27 @@
1
1
  import { Failure } from '../result';
2
2
  import { GenericValidator, GenericValidatorConstructorParams } from './genericValidator';
3
+ /**
4
+ * Parameters used to construct a {@link Validation.Classes.NumberValidator | NumberValidator}.
5
+ * @public
6
+ */
3
7
  export declare type NumberValidatorConstructorParams<T extends number = number, TC = unknown> = GenericValidatorConstructorParams<T, TC>;
8
+ /**
9
+ * An in-place {@link Validation.Validator | Validator} for `number` values.
10
+ * @public
11
+ */
4
12
  export declare class NumberValidator<T extends number = number, TC = unknown> extends GenericValidator<T, TC> {
13
+ /**
14
+ * Constructs a new {@link Validation.Classes.NumberValidator | NumberValidator}.
15
+ * @param params - Optional {@link Validation.Classes.NumberValidatorConstructorParams | init params} for the
16
+ * new {@link Validation.Classes.NumberValidator | NumberValidator}.
17
+ */
5
18
  constructor(params?: NumberValidatorConstructorParams<T, TC>);
19
+ /**
20
+ * Static method which validates that a supplied `unknown` value is a `number`.
21
+ * @param from - The `unknown` value to be tested.
22
+ * @returns Returns `true` if `from` is a `number`, or {@link Failure} with an error
23
+ * message if not.
24
+ */
6
25
  static validateNumber<T extends number>(from: unknown): boolean | Failure<T>;
7
26
  }
27
+ //# sourceMappingURL=number.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number.d.ts","sourceRoot":"","sources":["../../src/validation/number.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,OAAO,EAAQ,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,iCAAiC,EAAE,MAAM,oBAAoB,CAAC;AAEzF;;;GAGG;AACH,oBAAY,gCAAgC,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,EAAE,GAAG,OAAO,IAAI,iCAAiC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAGjI;;;GAGG;AACH,qBAAa,eAAe,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,EAAE,GAAG,OAAO,CAAE,SAAQ,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC;IACjG;;;;OAIG;gBACgB,MAAM,CAAC,EAAE,gCAAgC,CAAC,CAAC,EAAE,EAAE,CAAC;IAOnE;;;;;OAKG;WACW,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;CAMtF"}
@@ -24,19 +24,34 @@ Object.defineProperty(exports, "__esModule", { value: true });
24
24
  exports.NumberValidator = void 0;
25
25
  const result_1 = require("../result");
26
26
  const genericValidator_1 = require("./genericValidator");
27
+ /**
28
+ * An in-place {@link Validation.Validator | Validator} for `number` values.
29
+ * @public
30
+ */
27
31
  class NumberValidator extends genericValidator_1.GenericValidator {
32
+ /**
33
+ * Constructs a new {@link Validation.Classes.NumberValidator | NumberValidator}.
34
+ * @param params - Optional {@link Validation.Classes.NumberValidatorConstructorParams | init params} for the
35
+ * new {@link Validation.Classes.NumberValidator | NumberValidator}.
36
+ */
28
37
  constructor(params) {
29
38
  super({
30
39
  validator: NumberValidator.validateNumber,
31
40
  ...(params !== null && params !== void 0 ? params : {}),
32
41
  });
33
42
  }
43
+ /**
44
+ * Static method which validates that a supplied `unknown` value is a `number`.
45
+ * @param from - The `unknown` value to be tested.
46
+ * @returns Returns `true` if `from` is a `number`, or {@link Failure} with an error
47
+ * message if not.
48
+ */
34
49
  static validateNumber(from) {
35
50
  if (typeof from === 'number') {
36
51
  return true;
37
52
  }
38
- return result_1.fail(`"${from}": not a number`);
53
+ return (0, result_1.fail)(`"${from}": not a number`);
39
54
  }
40
55
  }
41
56
  exports.NumberValidator = NumberValidator;
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZhbGlkYXRpb24vbnVtYmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7OztBQUVILHNDQUEwQztBQUMxQyx5REFBeUY7QUFJekYsTUFBYSxlQUF5RCxTQUFRLG1DQUF1QjtJQUNqRyxZQUFtQixNQUFnRDtRQUMvRCxLQUFLLENBQUM7WUFDRixTQUFTLEVBQUUsZUFBZSxDQUFDLGNBQWM7WUFDekMsR0FBRyxDQUFDLE1BQU0sYUFBTixNQUFNLGNBQU4sTUFBTSxHQUFJLEVBQUUsQ0FBQztTQUNwQixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sTUFBTSxDQUFDLGNBQWMsQ0FBbUIsSUFBYTtRQUN4RCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUMxQixPQUFPLElBQUksQ0FBQztTQUNmO1FBQ0QsT0FBTyxhQUFJLENBQUksSUFBSSxJQUFJLGlCQUFpQixDQUFDLENBQUM7SUFDOUMsQ0FBQztDQUNKO0FBZEQsMENBY0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDIxIEVyaWsgRm9ydHVuZVxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiAqIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuICogU09GVFdBUkUuXG4gKi9cblxuaW1wb3J0IHsgRmFpbHVyZSwgZmFpbCB9IGZyb20gJy4uL3Jlc3VsdCc7XG5pbXBvcnQgeyBHZW5lcmljVmFsaWRhdG9yLCBHZW5lcmljVmFsaWRhdG9yQ29uc3RydWN0b3JQYXJhbXMgfSBmcm9tICcuL2dlbmVyaWNWYWxpZGF0b3InO1xuXG5leHBvcnQgdHlwZSBOdW1iZXJWYWxpZGF0b3JDb25zdHJ1Y3RvclBhcmFtczxUIGV4dGVuZHMgbnVtYmVyID0gbnVtYmVyLCBUQyA9IHVua25vd24+ID0gR2VuZXJpY1ZhbGlkYXRvckNvbnN0cnVjdG9yUGFyYW1zPFQsIFRDPjtcblxuZXhwb3J0IGNsYXNzIE51bWJlclZhbGlkYXRvcjxUIGV4dGVuZHMgbnVtYmVyID0gbnVtYmVyLCBUQyA9IHVua25vd24+IGV4dGVuZHMgR2VuZXJpY1ZhbGlkYXRvcjxULCBUQz4ge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXJhbXM/OiBOdW1iZXJWYWxpZGF0b3JDb25zdHJ1Y3RvclBhcmFtczxULCBUQz4pIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgdmFsaWRhdG9yOiBOdW1iZXJWYWxpZGF0b3IudmFsaWRhdGVOdW1iZXIsXG4gICAgICAgICAgICAuLi4ocGFyYW1zID8/IHt9KSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyB2YWxpZGF0ZU51bWJlcjxUIGV4dGVuZHMgbnVtYmVyPihmcm9tOiB1bmtub3duKTogYm9vbGVhbiB8IEZhaWx1cmU8VD4ge1xuICAgICAgICBpZiAodHlwZW9mIGZyb20gPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFpbDxUPihgXCIke2Zyb219XCI6IG5vdCBhIG51bWJlcmApO1xuICAgIH1cbn1cbiJdfQ==
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ZhbGlkYXRpb24vbnVtYmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7OztBQUVILHNDQUEwQztBQUMxQyx5REFBeUY7QUFTekY7OztHQUdHO0FBQ0gsTUFBYSxlQUF5RCxTQUFRLG1DQUF1QjtJQUNqRzs7OztPQUlHO0lBQ0gsWUFBbUIsTUFBZ0Q7UUFDL0QsS0FBSyxDQUFDO1lBQ0YsU0FBUyxFQUFFLGVBQWUsQ0FBQyxjQUFjO1lBQ3pDLEdBQUcsQ0FBQyxNQUFNLGFBQU4sTUFBTSxjQUFOLE1BQU0sR0FBSSxFQUFFLENBQUM7U0FDcEIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLGNBQWMsQ0FBbUIsSUFBYTtRQUN4RCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUMxQixPQUFPLElBQUksQ0FBQztTQUNmO1FBQ0QsT0FBTyxJQUFBLGFBQUksRUFBSSxJQUFJLElBQUksaUJBQWlCLENBQUMsQ0FBQztJQUM5QyxDQUFDO0NBQ0o7QUF6QkQsMENBeUJDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAyMSBFcmlrIEZvcnR1bmVcbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG4gKiBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEVcbiAqIFNPRlRXQVJFLlxuICovXG5cbmltcG9ydCB7IEZhaWx1cmUsIGZhaWwgfSBmcm9tICcuLi9yZXN1bHQnO1xuaW1wb3J0IHsgR2VuZXJpY1ZhbGlkYXRvciwgR2VuZXJpY1ZhbGlkYXRvckNvbnN0cnVjdG9yUGFyYW1zIH0gZnJvbSAnLi9nZW5lcmljVmFsaWRhdG9yJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIHVzZWQgdG8gY29uc3RydWN0IGEge0BsaW5rIFZhbGlkYXRpb24uQ2xhc3Nlcy5OdW1iZXJWYWxpZGF0b3IgfCBOdW1iZXJWYWxpZGF0b3J9LlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgdHlwZSBOdW1iZXJWYWxpZGF0b3JDb25zdHJ1Y3RvclBhcmFtczxUIGV4dGVuZHMgbnVtYmVyID0gbnVtYmVyLCBUQyA9IHVua25vd24+ID0gR2VuZXJpY1ZhbGlkYXRvckNvbnN0cnVjdG9yUGFyYW1zPFQsIFRDPjtcblxuXG4vKipcbiAqIEFuIGluLXBsYWNlIHtAbGluayBWYWxpZGF0aW9uLlZhbGlkYXRvciB8IFZhbGlkYXRvcn0gZm9yIGBudW1iZXJgIHZhbHVlcy5cbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNsYXNzIE51bWJlclZhbGlkYXRvcjxUIGV4dGVuZHMgbnVtYmVyID0gbnVtYmVyLCBUQyA9IHVua25vd24+IGV4dGVuZHMgR2VuZXJpY1ZhbGlkYXRvcjxULCBUQz4ge1xuICAgIC8qKlxuICAgICAqIENvbnN0cnVjdHMgYSBuZXcge0BsaW5rIFZhbGlkYXRpb24uQ2xhc3Nlcy5OdW1iZXJWYWxpZGF0b3IgfCBOdW1iZXJWYWxpZGF0b3J9LlxuICAgICAqIEBwYXJhbSBwYXJhbXMgLSBPcHRpb25hbCB7QGxpbmsgVmFsaWRhdGlvbi5DbGFzc2VzLk51bWJlclZhbGlkYXRvckNvbnN0cnVjdG9yUGFyYW1zIHwgaW5pdCBwYXJhbXN9IGZvciB0aGVcbiAgICAgKiBuZXcge0BsaW5rIFZhbGlkYXRpb24uQ2xhc3Nlcy5OdW1iZXJWYWxpZGF0b3IgfCBOdW1iZXJWYWxpZGF0b3J9LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXJhbXM/OiBOdW1iZXJWYWxpZGF0b3JDb25zdHJ1Y3RvclBhcmFtczxULCBUQz4pIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgdmFsaWRhdG9yOiBOdW1iZXJWYWxpZGF0b3IudmFsaWRhdGVOdW1iZXIsXG4gICAgICAgICAgICAuLi4ocGFyYW1zID8/IHt9KSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU3RhdGljIG1ldGhvZCB3aGljaCB2YWxpZGF0ZXMgdGhhdCBhIHN1cHBsaWVkIGB1bmtub3duYCB2YWx1ZSBpcyBhIGBudW1iZXJgLlxuICAgICAqIEBwYXJhbSBmcm9tIC0gVGhlIGB1bmtub3duYCB2YWx1ZSB0byBiZSB0ZXN0ZWQuXG4gICAgICogQHJldHVybnMgUmV0dXJucyBgdHJ1ZWAgaWYgYGZyb21gIGlzIGEgYG51bWJlcmAsIG9yIHtAbGluayBGYWlsdXJlfSB3aXRoIGFuIGVycm9yXG4gICAgICogbWVzc2FnZSBpZiBub3QuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyB2YWxpZGF0ZU51bWJlcjxUIGV4dGVuZHMgbnVtYmVyPihmcm9tOiB1bmtub3duKTogYm9vbGVhbiB8IEZhaWx1cmU8VD4ge1xuICAgICAgICBpZiAodHlwZW9mIGZyb20gPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFpbDxUPihgXCIke2Zyb219XCI6IG5vdCBhIG51bWJlcmApO1xuICAgIH1cbn1cbiJdfQ==
@@ -2,13 +2,15 @@ import { Failure } from '../result';
2
2
  import { Validator, ValidatorOptions } from './validator';
3
3
  import { ValidatorBase, ValidatorBaseConstructorParams } from './validatorBase';
4
4
  /**
5
- * Per-property validators for each of the properties in type T
5
+ * Per-property {@link Validation.Validator | validators} for each of the properties in `<T>`.
6
+ * @public
6
7
  */
7
8
  export declare type FieldValidators<T, TC = unknown> = {
8
9
  [key in keyof T]: Validator<T[key], TC>;
9
10
  };
10
11
  /**
11
- * Options for an @see ObjectValidator.
12
+ * Options for an {@link Validation.Classes.ObjectValidator | ObjectValidator}.
13
+ * @public
12
14
  */
13
15
  export interface ObjectValidatorOptions<T, TC> extends ValidatorOptions<TC> {
14
16
  /**
@@ -21,30 +23,93 @@ export interface ObjectValidatorOptions<T, TC> extends ValidatorOptions<TC> {
21
23
  */
22
24
  strict?: boolean;
23
25
  }
26
+ /**
27
+ * Options for the {@link Validation.Classes.ObjectValidator | ObjectValidator} constructor.
28
+ * @public
29
+ */
24
30
  export interface ObjectValidatorConstructorParams<T, TC> extends ValidatorBaseConstructorParams<T, TC> {
31
+ /**
32
+ * A {@link Validation.Classes.FieldValidators | FieldValidators} object specifying a
33
+ * {@link Validation.Validator | Validator} for each of the expected properties
34
+ * of a result object.
35
+ */
25
36
  fields: FieldValidators<T>;
37
+ /**
38
+ * Optional additional {@link Validation.Classes.ObjectValidatorOptions | ValidatorOptions} to
39
+ * configure validation.
40
+ */
26
41
  options?: ObjectValidatorOptions<T, TC>;
27
42
  }
28
43
  /**
29
- * In-place validation for an object of type T, given a @see FieldValidators<T>.
30
- * If all of the required fields exist and ar valid, returns a strongly typed reference
31
- * to the object. If any required fields do not exist or are invalid, returns @see Failure
32
- * with an error description. See @see ObjectValidatorOptions for other validatiorion options.
44
+ * In-place {@link Validation.Validator | Validator} for an object of type `<T>`.
45
+ * @remarks
46
+ * By default, succeeds if all of the required fields exist and are validate, and fails if
47
+ * any required fields do not exist or are invalid. See {@link Validation.Classes.ObjectValidatorOptions}
48
+ * for other validation options.
49
+ * @public
33
50
  */
34
51
  export declare class ObjectValidator<T, TC = unknown> extends ValidatorBase<T, TC> {
52
+ /**
53
+ * A {@link Validation.Classes.FieldValidators | FieldValidators} object specifying a
54
+ * {@link Validation.Validator | Validator} for each of the expected properties
55
+ */
35
56
  readonly fields: FieldValidators<T>;
57
+ /**
58
+ * {@link Validation.Classes.ObjectValidatorOptions | Options} which apply to this
59
+ * validator.
60
+ */
36
61
  readonly options: ObjectValidatorOptions<T, TC>;
62
+ /**
63
+ * @internal
64
+ */
37
65
  protected readonly _innerValidators: FieldValidators<T>;
66
+ /**
67
+ * @internal
68
+ */
38
69
  protected readonly _allowedFields?: Set<keyof T>;
39
70
  /**
40
- * Constructs a new @see ObjectValidator<T> using options supplied in an
41
- * optional @see ObjectValidatorOptions<T>.
42
- * @param fields A @see FieldValidators<T> containing converters for each field
43
- * @param options An optional @see ObjectValidatorOptions to configure the conversion
71
+ * Constructs a new {@link Validation.Classes.ObjectValidator | ObjectValidator<T>}.
72
+ * @param fields - A {@link Validation.Classes.FieldValidators | FieldValidators<T>} containing
73
+ * a {@link Validation.Validator | Validator} for each field.
74
+ * @param options - An optional {@link Validation.Classes.ObjectValidatorOptions} to configure
75
+ * validation.
44
76
  */
45
77
  constructor(params: ObjectValidatorConstructorParams<T, TC>);
78
+ /**
79
+ * Creates the actual {@link Validation.Classes.FieldValidators | FieldValidators<T>} to be
80
+ * used by this converter by applying any options or traits defined in the options
81
+ * to the field converters passed to the constructor.
82
+ * @param fields - The base {@link Validation.Classes.FieldValidators | FieldValidators<T>} passed
83
+ * in to the constructor.
84
+ * @param options - The {@link Validation.Classes.ObjectValidatorOptions | object validator options}
85
+ * passed in to the constructor.
86
+ * @returns A new {@link Validation.Classes.FieldValidators | FieldValidators} with the fully-configured
87
+ * individual {@link Validation.Validator | field validators} to be applied.
88
+ * @internal
89
+ */
46
90
  protected static _resolveValidators<T, TC>(fields: FieldValidators<T, TC>, options?: ObjectValidatorOptions<T, TC>): FieldValidators<T, TC>;
47
- partial(options: ObjectValidatorOptions<T, TC>): ObjectValidator<Partial<T>, TC>;
91
+ /**
92
+ * Creates a new {@link Validation.Classes.ObjectValidator | ObjectValidator} derived from this one but with
93
+ * new optional properties as specified by a supplied
94
+ * {@link Validation.Classes.ObjectValidatorOptions | ObjectValidatorOptions<T>}.
95
+ * @param options - The {@link Validation.Classes.ObjectValidatorOptions | options} to be applied to the new
96
+ * {@link Validation.Classes.ObjectValidator | validator}.
97
+ * @returns A new {@link Validation.Classes.ObjectValidator | ObjectValidator} with the additional optional
98
+ * source properties.
99
+ */
100
+ partial(options?: ObjectValidatorOptions<T, TC>): ObjectValidator<Partial<T>, TC>;
101
+ /**
102
+ * Creates a new {@link Validation.Classes.ObjectValidator | ObjectValidator} derived from this one but with
103
+ * new optional properties as specified by a supplied array of `keyof T`.
104
+ * @param addOptionalProperties - The keys to be made optional.
105
+ * @returns A new {@link Validation.Classes.ObjectValidator | ObjectValidator} with the additional optional
106
+ * source properties.
107
+ */
48
108
  addPartial(addOptionalFields: (keyof T)[]): ObjectValidator<Partial<T>, TC>;
109
+ /**
110
+ * {@inheritdoc Validation.ValidatorBase._validate}
111
+ * @internal
112
+ */
49
113
  protected _validate(from: unknown, context?: TC): boolean | Failure<T>;
50
114
  }
115
+ //# sourceMappingURL=object.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../src/validation/object.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,OAAO,EAAQ,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AAIhF;;;GAGG;AACH,oBAAY,eAAe,CAAC,CAAC,EAAE,EAAE,GAAC,OAAO,IAAI;KAAG,GAAG,IAAI,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;CAAE,CAAC;AAEzF;;;GAGG;AACH,MAAM,WAAW,sBAAsB,CAAC,CAAC,EAAE,EAAE,CAAE,SAAQ,gBAAgB,CAAC,EAAE,CAAC;IACvE;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;IAC7B;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,gCAAgC,CAAC,CAAC,EAAE,EAAE,CAAE,SAAQ,8BAA8B,CAAC,CAAC,EAAE,EAAE,CAAC;IAClG;;;;OAIG;IACH,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IAC3B;;;OAGG;IACH,OAAO,CAAC,EAAE,sBAAsB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;CAC3C;AAED;;;;;;;GAOG;AACH,qBAAa,eAAe,CAAC,CAAC,EAAE,EAAE,GAAC,OAAO,CAAE,SAAQ,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC;IACpE;;;OAGG;IACH,SAAgB,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IAC3C;;;OAGG;IACH,SAAgB,OAAO,EAAE,sBAAsB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACvD;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IACxD;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAEjD;;;;;;OAMG;gBACgB,MAAM,EAAE,gCAAgC,CAAC,CAAC,EAAE,EAAE,CAAC;IAWlE;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,EAAE,EACrC,MAAM,EAAE,eAAe,CAAC,CAAC,EAAE,EAAE,CAAC,EAC9B,OAAO,CAAC,EAAE,sBAAsB,CAAC,CAAC,EAAE,EAAE,CAAC,GACxC,eAAe,CAAC,CAAC,EAAE,EAAE,CAAC;IAYzB;;;;;;;;OAQG;IACI,OAAO,CAAC,OAAO,CAAC,EAAE,sBAAsB,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAaxF;;;;;;OAMG;IACI,UAAU,CAAC,iBAAiB,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAMlF;;;OAGG;IACH,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;CA2BzE"}