justus 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +153 -34
- package/dist/dts-generator.js +166 -0
- package/dist/dts-generator.js.map +6 -0
- package/dist/dts-generator.mjs +156 -0
- package/dist/dts-generator.mjs.map +6 -0
- package/dist/{index.cjs → index.js} +122 -120
- package/dist/index.js.map +6 -0
- package/dist/index.mjs +117 -119
- package/dist/index.mjs.map +1 -1
- package/dts-generator.d.ts +13 -0
- package/{dist/index.d.ts → index.d.ts} +72 -12
- package/package.json +19 -9
- package/src/dts-generator.ts +274 -0
- package/src/index.ts +4 -4
- package/src/types.ts +9 -0
- package/src/validators/array.ts +11 -9
- package/src/validators/number.ts +52 -20
- package/src/validators/object.ts +65 -46
- package/src/validators/string.ts +23 -9
- package/src/validators/tuple.ts +17 -13
- package/dist/index.cjs.map +0 -6
package/dist/index.mjs
CHANGED
|
@@ -30,28 +30,6 @@ var __objRest = (source, exclude) => {
|
|
|
30
30
|
}
|
|
31
31
|
return target;
|
|
32
32
|
};
|
|
33
|
-
var __publicField = (obj, key, value) => {
|
|
34
|
-
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
35
|
-
return value;
|
|
36
|
-
};
|
|
37
|
-
var __accessCheck = (obj, member, msg) => {
|
|
38
|
-
if (!member.has(obj))
|
|
39
|
-
throw TypeError("Cannot " + msg);
|
|
40
|
-
};
|
|
41
|
-
var __privateGet = (obj, member, getter) => {
|
|
42
|
-
__accessCheck(obj, member, "read from private field");
|
|
43
|
-
return getter ? getter.call(obj) : member.get(obj);
|
|
44
|
-
};
|
|
45
|
-
var __privateAdd = (obj, member, value) => {
|
|
46
|
-
if (member.has(obj))
|
|
47
|
-
throw TypeError("Cannot add the same private member more than once");
|
|
48
|
-
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
49
|
-
};
|
|
50
|
-
var __privateSet = (obj, member, value, setter) => {
|
|
51
|
-
__accessCheck(obj, member, "write to private field");
|
|
52
|
-
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
53
|
-
return value;
|
|
54
|
-
};
|
|
55
33
|
|
|
56
34
|
// src/errors.ts
|
|
57
35
|
function pathToString(path) {
|
|
@@ -154,24 +132,26 @@ var nullValidator = new ConstantValidator(null);
|
|
|
154
132
|
|
|
155
133
|
// src/validators/tuple.ts
|
|
156
134
|
var TupleValidator = class extends Validator {
|
|
135
|
+
members;
|
|
157
136
|
tuple;
|
|
158
|
-
#validators = [];
|
|
159
137
|
constructor(tuple2) {
|
|
160
138
|
super();
|
|
161
|
-
|
|
139
|
+
const members = [];
|
|
162
140
|
for (const item of tuple2) {
|
|
163
141
|
if (item === null) {
|
|
164
|
-
|
|
142
|
+
members.push({ single: true, validator: nullValidator });
|
|
165
143
|
} else if (typeof item === "object" && restValidator in item) {
|
|
166
|
-
|
|
144
|
+
members.push({ single: false, validator: item[restValidator] });
|
|
167
145
|
} else {
|
|
168
|
-
|
|
146
|
+
members.push({ single: true, validator: getValidator(item) });
|
|
169
147
|
}
|
|
170
148
|
}
|
|
149
|
+
this.members = members;
|
|
150
|
+
this.tuple = tuple2;
|
|
171
151
|
}
|
|
172
152
|
validate(value, options) {
|
|
173
153
|
assertValidation(Array.isArray(value), 'Value is not an "array"');
|
|
174
|
-
if (this
|
|
154
|
+
if (this.members.length === 0) {
|
|
175
155
|
const size = value.length;
|
|
176
156
|
assertValidation(size === 0, `Found ${size} element${size === 1 ? "" : "s"} validating empty tuple`);
|
|
177
157
|
return value;
|
|
@@ -179,24 +159,24 @@ var TupleValidator = class extends Validator {
|
|
|
179
159
|
const clone = new Array(value.length);
|
|
180
160
|
let needle = 0;
|
|
181
161
|
let haystack = 0;
|
|
182
|
-
let { single, validator } = this
|
|
183
|
-
while (needle < this
|
|
162
|
+
let { single, validator } = this.members[needle];
|
|
163
|
+
while (needle < this.members.length && haystack < value.length) {
|
|
184
164
|
try {
|
|
185
165
|
clone[haystack] = validator.validate(value[haystack], options);
|
|
186
166
|
if (single)
|
|
187
|
-
({ single, validator } = this
|
|
167
|
+
({ single, validator } = this.members[++needle] || {});
|
|
188
168
|
haystack++;
|
|
189
169
|
} catch (error) {
|
|
190
170
|
if (single)
|
|
191
171
|
throw new ValidationError(error, [haystack]);
|
|
192
172
|
else
|
|
193
|
-
({ single, validator } = this
|
|
173
|
+
({ single, validator } = this.members[++needle] || {});
|
|
194
174
|
}
|
|
195
175
|
}
|
|
196
|
-
while (needle < this
|
|
176
|
+
while (needle < this.members.length && this.members[needle].single === false) {
|
|
197
177
|
needle++;
|
|
198
178
|
}
|
|
199
|
-
const missing = this
|
|
179
|
+
const missing = this.members.length - needle;
|
|
200
180
|
if (missing === 1 && single) {
|
|
201
181
|
throw new ValidationError("Tuple defines 1 missing validation");
|
|
202
182
|
} else if (missing > 1) {
|
|
@@ -219,26 +199,35 @@ function makeTupleRestIterable(create) {
|
|
|
219
199
|
}
|
|
220
200
|
|
|
221
201
|
// src/validators/object.ts
|
|
202
|
+
var AnyObjectValidator = class extends Validator {
|
|
203
|
+
validate(value) {
|
|
204
|
+
assertValidation(typeof value == "object", 'Value is not an "object"');
|
|
205
|
+
assertValidation(value !== null, 'Value is "null"');
|
|
206
|
+
return value;
|
|
207
|
+
}
|
|
208
|
+
};
|
|
222
209
|
var ObjectValidator = class extends Validator {
|
|
223
210
|
schema;
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
#optionalProperties = {};
|
|
227
|
-
#neverProperties = /* @__PURE__ */ new Set();
|
|
211
|
+
properties = /* @__PURE__ */ new Map();
|
|
212
|
+
additionalProperties;
|
|
228
213
|
constructor(schema) {
|
|
229
214
|
super();
|
|
230
215
|
var _a;
|
|
231
216
|
const _b = schema, { [_a = additionalValidator]: additional } = _b, properties = __objRest(_b, [__restKey(_a)]);
|
|
232
217
|
if (additional)
|
|
233
|
-
this
|
|
218
|
+
this.additionalProperties = getValidator(additional);
|
|
234
219
|
for (const key of Object.keys(properties)) {
|
|
235
220
|
const definition = properties[key];
|
|
236
221
|
if (definition === never) {
|
|
237
|
-
this
|
|
222
|
+
this.properties.set(key, void 0);
|
|
238
223
|
} else if (isModifier(definition)) {
|
|
239
|
-
(
|
|
224
|
+
this.properties.set(key, {
|
|
225
|
+
validator: definition[modifierValidator],
|
|
226
|
+
readonly: definition.readonly,
|
|
227
|
+
optional: definition.optional
|
|
228
|
+
});
|
|
240
229
|
} else {
|
|
241
|
-
this
|
|
230
|
+
this.properties.set(key, { validator: getValidator(definition) });
|
|
242
231
|
}
|
|
243
232
|
}
|
|
244
233
|
this.schema = schema;
|
|
@@ -249,43 +238,29 @@ var ObjectValidator = class extends Validator {
|
|
|
249
238
|
const record = value;
|
|
250
239
|
const builder = new ValidationErrorBuilder();
|
|
251
240
|
const clone = {};
|
|
252
|
-
for (const [key,
|
|
253
|
-
|
|
254
|
-
|
|
241
|
+
for (const [key, property] of this.properties.entries()) {
|
|
242
|
+
const { validator, optional: optional2 } = property || {};
|
|
243
|
+
if (!validator) {
|
|
244
|
+
if (record[key] === void 0)
|
|
245
|
+
continue;
|
|
246
|
+
if (options.stripForbiddenProperties)
|
|
247
|
+
continue;
|
|
248
|
+
builder.record("Forbidden property", key);
|
|
255
249
|
continue;
|
|
256
250
|
}
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
builder.record(error, key);
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
for (const [key, validator] of Object.entries(this.#optionalProperties)) {
|
|
264
|
-
if (record[key] === void 0)
|
|
251
|
+
if (record[key] === void 0) {
|
|
252
|
+
if (!optional2)
|
|
253
|
+
builder.record("Required property missing", key);
|
|
265
254
|
continue;
|
|
255
|
+
}
|
|
266
256
|
try {
|
|
267
257
|
clone[key] = validator.validate(record[key], options);
|
|
268
258
|
} catch (error) {
|
|
269
259
|
builder.record(error, key);
|
|
270
260
|
}
|
|
271
261
|
}
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
continue;
|
|
275
|
-
if (options.stripForbiddenProperties)
|
|
276
|
-
continue;
|
|
277
|
-
builder.record("Forbidden property", key);
|
|
278
|
-
}
|
|
279
|
-
const additional = this.#additionalProperties;
|
|
280
|
-
const additionalKeys = Object.keys(record).filter((k) => {
|
|
281
|
-
if (k in this.#requiredProperties)
|
|
282
|
-
return false;
|
|
283
|
-
if (k in this.#optionalProperties)
|
|
284
|
-
return false;
|
|
285
|
-
if (this.#neverProperties.has(k))
|
|
286
|
-
return false;
|
|
287
|
-
return true;
|
|
288
|
-
});
|
|
262
|
+
const additionalKeys = Object.keys(record).filter((k) => !this.properties.has(k));
|
|
263
|
+
const additional = this.additionalProperties;
|
|
289
264
|
if (additional) {
|
|
290
265
|
additionalKeys.forEach((key) => {
|
|
291
266
|
if (record[key] === void 0)
|
|
@@ -305,19 +280,17 @@ var ObjectValidator = class extends Validator {
|
|
|
305
280
|
return builder.assert(clone);
|
|
306
281
|
}
|
|
307
282
|
};
|
|
308
|
-
var anyObjectValidator = new
|
|
309
|
-
validate(value) {
|
|
310
|
-
assertValidation(typeof value == "object", 'Value is not an "object"');
|
|
311
|
-
assertValidation(value !== null, 'Value is "null"');
|
|
312
|
-
return value;
|
|
313
|
-
}
|
|
314
|
-
}();
|
|
283
|
+
var anyObjectValidator = new AnyObjectValidator();
|
|
315
284
|
function _object(schema) {
|
|
316
285
|
if (!schema)
|
|
317
286
|
return anyObjectValidator;
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
287
|
+
const validator = new ObjectValidator(schema);
|
|
288
|
+
function* iterator() {
|
|
289
|
+
yield { [restValidator]: validator };
|
|
290
|
+
}
|
|
291
|
+
return Object.defineProperties(schema, {
|
|
292
|
+
[schemaValidator]: { value: validator, enumerable: false },
|
|
293
|
+
[Symbol.iterator]: { value: iterator, enumerable: false }
|
|
321
294
|
});
|
|
322
295
|
}
|
|
323
296
|
var object = makeTupleRestIterable(_object);
|
|
@@ -412,6 +385,13 @@ function allOf(...args) {
|
|
|
412
385
|
}
|
|
413
386
|
|
|
414
387
|
// src/validators/array.ts
|
|
388
|
+
var AnyArrayValidator = class extends Validator {
|
|
389
|
+
validate(value, options) {
|
|
390
|
+
void 0;
|
|
391
|
+
assertValidation(Array.isArray(value), 'Value is not an "array"');
|
|
392
|
+
return [...value];
|
|
393
|
+
}
|
|
394
|
+
};
|
|
415
395
|
var ArrayValidator = class extends Validator {
|
|
416
396
|
maxItems;
|
|
417
397
|
minItems;
|
|
@@ -456,12 +436,7 @@ var ArrayValidator = class extends Validator {
|
|
|
456
436
|
return builder.assert(clone);
|
|
457
437
|
}
|
|
458
438
|
};
|
|
459
|
-
var anyArrayValidator = new
|
|
460
|
-
validate(value) {
|
|
461
|
-
assertValidation(Array.isArray(value), 'Value is not an "array"');
|
|
462
|
-
return value;
|
|
463
|
-
}
|
|
464
|
-
}();
|
|
439
|
+
var anyArrayValidator = new AnyArrayValidator();
|
|
465
440
|
function _array(options) {
|
|
466
441
|
if (!options)
|
|
467
442
|
return anyArrayValidator;
|
|
@@ -529,17 +504,33 @@ function _date(constraints) {
|
|
|
529
504
|
var date = makeTupleRestIterable(_date);
|
|
530
505
|
|
|
531
506
|
// src/validators/number.ts
|
|
532
|
-
var
|
|
533
|
-
var
|
|
507
|
+
var PRECISION = 6;
|
|
508
|
+
var MULTIPLIER = Math.pow(10, PRECISION);
|
|
509
|
+
function countDecimals(n) {
|
|
510
|
+
const match = n.toExponential().match(/^\d+(\.\d+)?e([+-]\d+)$/);
|
|
511
|
+
if (!match)
|
|
512
|
+
throw new RangeError(`Can't calculate digits for number "${n}"`);
|
|
513
|
+
const digits = (match[1] || ".").length - 1 - parseInt(match[2]);
|
|
514
|
+
return digits < 0 ? 0 : digits;
|
|
515
|
+
}
|
|
516
|
+
var AnyNumberValidator = class extends Validator {
|
|
517
|
+
validate(value) {
|
|
518
|
+
assertValidation(typeof value == "number", 'Value is not a "number"');
|
|
519
|
+
assertValidation(!isNaN(value), 'Number is "NaN"');
|
|
520
|
+
return value;
|
|
521
|
+
}
|
|
522
|
+
};
|
|
523
|
+
var NumberValidator = class extends Validator {
|
|
524
|
+
#isMultipleOf;
|
|
525
|
+
allowNaN;
|
|
526
|
+
exclusiveMaximum;
|
|
527
|
+
exclusiveMinimum;
|
|
528
|
+
maximum;
|
|
529
|
+
minimum;
|
|
530
|
+
multipleOf;
|
|
531
|
+
brand;
|
|
534
532
|
constructor(constraints = {}) {
|
|
535
533
|
super();
|
|
536
|
-
__privateAdd(this, _isMultipleOf, void 0);
|
|
537
|
-
__publicField(this, "allowNaN");
|
|
538
|
-
__publicField(this, "exclusiveMaximum");
|
|
539
|
-
__publicField(this, "exclusiveMinimum");
|
|
540
|
-
__publicField(this, "maximum");
|
|
541
|
-
__publicField(this, "minimum");
|
|
542
|
-
__publicField(this, "multipleOf");
|
|
543
534
|
const {
|
|
544
535
|
allowNaN = false,
|
|
545
536
|
exclusiveMaximum,
|
|
@@ -548,6 +539,8 @@ var _NumberValidator = class extends Validator {
|
|
|
548
539
|
minimum = Number.NEGATIVE_INFINITY,
|
|
549
540
|
multipleOf
|
|
550
541
|
} = constraints;
|
|
542
|
+
if ("brand" in constraints)
|
|
543
|
+
this.brand = constraints.brand;
|
|
551
544
|
assertSchema(maximum >= minimum, `Constraint "minimum" (${minimum}) is greater than "maximum" (${maximum})`);
|
|
552
545
|
if (exclusiveMaximum !== void 0) {
|
|
553
546
|
assertSchema(exclusiveMaximum > minimum, `Constraint "exclusiveMaximum" (${exclusiveMaximum}) must be greater than "minimum" (${minimum})`);
|
|
@@ -560,13 +553,19 @@ var _NumberValidator = class extends Validator {
|
|
|
560
553
|
}
|
|
561
554
|
if (multipleOf !== void 0) {
|
|
562
555
|
assertSchema(multipleOf > 0, `Constraint "multipleOf" (${multipleOf}) must be greater than zero`);
|
|
563
|
-
const
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
if (
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
556
|
+
const decimals = countDecimals(multipleOf);
|
|
557
|
+
if (decimals === 0) {
|
|
558
|
+
this.#isMultipleOf = (value) => !(value % multipleOf);
|
|
559
|
+
} else if (decimals <= PRECISION) {
|
|
560
|
+
this.#isMultipleOf = (value) => {
|
|
561
|
+
try {
|
|
562
|
+
if (countDecimals(value) > PRECISION)
|
|
563
|
+
return false;
|
|
564
|
+
return !(value * MULTIPLIER % (multipleOf * MULTIPLIER));
|
|
565
|
+
} catch (error) {
|
|
566
|
+
throw new ValidationError(error.message);
|
|
567
|
+
}
|
|
568
|
+
};
|
|
570
569
|
} else {
|
|
571
570
|
assertSchema(false, `Constraint "multipleOf" (${multipleOf}) requires too much precision`);
|
|
572
571
|
}
|
|
@@ -588,30 +587,28 @@ var _NumberValidator = class extends Validator {
|
|
|
588
587
|
assertValidation(value <= this.maximum, `Number is greater than ${this.maximum}`);
|
|
589
588
|
assertValidation(this.exclusiveMinimum == void 0 || value > this.exclusiveMinimum, `Number is less than or equal to ${this.exclusiveMinimum}`);
|
|
590
589
|
assertValidation(this.exclusiveMaximum == void 0 || value < this.exclusiveMaximum, `Number is greater than or equal to ${this.exclusiveMaximum}`);
|
|
591
|
-
assertValidation(
|
|
590
|
+
assertValidation(this.#isMultipleOf ? this.#isMultipleOf(value) : true, `Number is not a multiple of ${this.multipleOf}`);
|
|
592
591
|
return value;
|
|
593
592
|
}
|
|
594
593
|
};
|
|
595
|
-
var
|
|
596
|
-
_isMultipleOf = new WeakMap();
|
|
597
|
-
__publicField(NumberValidator, "PRECISION", 1e6);
|
|
598
|
-
var anyNumberValidator = new class extends Validator {
|
|
599
|
-
validate(value) {
|
|
600
|
-
assertValidation(typeof value == "number", 'Value is not a "number"');
|
|
601
|
-
assertValidation(!isNaN(value), 'Number is "NaN"');
|
|
602
|
-
return value;
|
|
603
|
-
}
|
|
604
|
-
}();
|
|
594
|
+
var anyNumberValidator = new AnyNumberValidator();
|
|
605
595
|
function _number(constraints) {
|
|
606
596
|
return constraints ? new NumberValidator(constraints) : anyNumberValidator;
|
|
607
597
|
}
|
|
608
598
|
var number = makeTupleRestIterable(_number);
|
|
609
599
|
|
|
610
600
|
// src/validators/string.ts
|
|
601
|
+
var AnyStringValidator = class extends Validator {
|
|
602
|
+
validate(value) {
|
|
603
|
+
assertValidation(typeof value == "string", 'Value is not a "string"');
|
|
604
|
+
return value;
|
|
605
|
+
}
|
|
606
|
+
};
|
|
611
607
|
var StringValidator = class extends Validator {
|
|
612
608
|
maxLength;
|
|
613
609
|
minLength;
|
|
614
610
|
pattern;
|
|
611
|
+
brand;
|
|
615
612
|
constructor(constraints = {}) {
|
|
616
613
|
super();
|
|
617
614
|
const {
|
|
@@ -619,6 +616,8 @@ var StringValidator = class extends Validator {
|
|
|
619
616
|
maxLength = Number.MAX_SAFE_INTEGER,
|
|
620
617
|
pattern
|
|
621
618
|
} = constraints;
|
|
619
|
+
if ("brand" in constraints)
|
|
620
|
+
this.brand = constraints.brand;
|
|
622
621
|
assertSchema(minLength >= 0, `Constraint "minLength" (${minLength}) must be non-negative`);
|
|
623
622
|
assertSchema(maxLength >= 0, `Constraint "maxLength" (${maxLength}) must be non-negative`);
|
|
624
623
|
assertSchema(minLength <= maxLength, `Constraint "minLength" (${minLength}) is greater than "maxLength" (${maxLength})`);
|
|
@@ -634,12 +633,7 @@ var StringValidator = class extends Validator {
|
|
|
634
633
|
return value;
|
|
635
634
|
}
|
|
636
635
|
};
|
|
637
|
-
var anyStringValidator = new
|
|
638
|
-
validate(value) {
|
|
639
|
-
assertValidation(typeof value == "string", 'Value is not a "string"');
|
|
640
|
-
return value;
|
|
641
|
-
}
|
|
642
|
-
}();
|
|
636
|
+
var anyStringValidator = new AnyStringValidator();
|
|
643
637
|
function _string(constraints) {
|
|
644
638
|
return constraints ? new StringValidator(constraints) : anyStringValidator;
|
|
645
639
|
}
|
|
@@ -655,6 +649,10 @@ function validate(validation, value, options = {}) {
|
|
|
655
649
|
}
|
|
656
650
|
export {
|
|
657
651
|
AllOfValidator,
|
|
652
|
+
AnyArrayValidator,
|
|
653
|
+
AnyNumberValidator,
|
|
654
|
+
AnyObjectValidator,
|
|
655
|
+
AnyStringValidator,
|
|
658
656
|
AnyValidator,
|
|
659
657
|
ArrayValidator,
|
|
660
658
|
BooleanValidator,
|
package/dist/index.mjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../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/index.ts"],
|
|
4
|
-
"mappings": "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",
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import ts from 'typescript';
|
|
2
|
+
import { Validation, Validator } from './index';
|
|
3
|
+
/** A function taking a `Validator` and producing its `TypeNode`. */
|
|
4
|
+
declare type TypeGenerator<V extends Validator = Validator> = (validator: V, references: ReadonlyMap<Validator, string>) => ts.TypeNode;
|
|
5
|
+
/** The generic constructor of a `Validator` instance. */
|
|
6
|
+
declare type ValidatorConstructor<V extends Validator = Validator> = {
|
|
7
|
+
new (...args: any[]): V;
|
|
8
|
+
};
|
|
9
|
+
/** Register a `TypeGenerator` function for a `Validator`. */
|
|
10
|
+
export declare function registerTypeGenerator<V extends Validator>(validator: ValidatorConstructor<V>, generator: TypeGenerator<V>): void;
|
|
11
|
+
/** Generate typings for the given `Validation`s. */
|
|
12
|
+
export declare function generateTypes(validations: Record<string, Validation>): string;
|
|
13
|
+
export {};
|
|
@@ -42,6 +42,26 @@ declare function _allowAdditionalProperties<V extends Validation>(validation: V)
|
|
|
42
42
|
/** The `Validator` validating _anything_. */
|
|
43
43
|
export declare const any: AnyValidator;
|
|
44
44
|
|
|
45
|
+
/** Basic validator for `Array` instances. */
|
|
46
|
+
export declare class AnyArrayValidator<T = any> extends Validator<T[]> {
|
|
47
|
+
validate(value: unknown, options: ValidationOptions): T[];
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/** A `Validator` validating any `number`. */
|
|
51
|
+
export declare class AnyNumberValidator extends Validator<number> {
|
|
52
|
+
validate(value: unknown): number;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/** A `Validator` validating any `object`. */
|
|
56
|
+
export declare class AnyObjectValidator extends Validator<Record<string, any>> {
|
|
57
|
+
validate(value: unknown): Record<string, any>;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/** A `Validator` validating any `string`. */
|
|
61
|
+
export declare class AnyStringValidator extends Validator<string> {
|
|
62
|
+
validate(value: unknown): string;
|
|
63
|
+
}
|
|
64
|
+
|
|
45
65
|
/** A `Validator` validating _anything_. */
|
|
46
66
|
export declare class AnyValidator extends Validator<any> {
|
|
47
67
|
validate(value: unknown): any;
|
|
@@ -69,9 +89,7 @@ declare interface ArrayConstraints<V extends Validation> {
|
|
|
69
89
|
/** Validate `Array`s containing only the specified elements. */
|
|
70
90
|
export declare function arrayOf<V extends Validation>(validation: V): ArrayValidator<InferValidation<V>>;
|
|
71
91
|
|
|
72
|
-
/**
|
|
73
|
-
* A validator for `Array` instances.
|
|
74
|
-
*/
|
|
92
|
+
/** A validator for `Array` instances with constraints. */
|
|
75
93
|
export declare class ArrayValidator<T> extends Validator<T[]> {
|
|
76
94
|
readonly maxItems: number;
|
|
77
95
|
readonly minItems: number;
|
|
@@ -100,6 +118,25 @@ export declare class BooleanValidator extends Validator<boolean> {
|
|
|
100
118
|
validate(value: unknown): boolean;
|
|
101
119
|
}
|
|
102
120
|
|
|
121
|
+
/** Constraints to validate a `number` with extra branding information. */
|
|
122
|
+
declare interface BrandedNumberConstraints<B extends string> extends NumberConstraints {
|
|
123
|
+
/** The _brand_ of the string (will generate a `__brand_${B}` type property */
|
|
124
|
+
brand: B;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/** Constraints to validate a `string` with extra branding information. */
|
|
128
|
+
declare interface BrandedStringConstraints<B extends string> extends StringConstraints {
|
|
129
|
+
/** The _brand_ of the string (will generate a `__brand_${B}` type property */
|
|
130
|
+
brand: B;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/** Utility type to infer primitive branding according to a string */
|
|
134
|
+
export declare type Branding<S extends string> = {
|
|
135
|
+
[key in keyof {
|
|
136
|
+
__brand: never;
|
|
137
|
+
} as `__brand_${S}`]: never;
|
|
138
|
+
};
|
|
139
|
+
|
|
103
140
|
/**
|
|
104
141
|
* Mark a `Schema` property as both _optional_ and _read only_.
|
|
105
142
|
*/
|
|
@@ -240,7 +277,11 @@ export declare const number: typeof _number & Iterable<TupleRestParameter<number
|
|
|
240
277
|
|
|
241
278
|
declare function _number(): Validator<number>;
|
|
242
279
|
|
|
243
|
-
declare function _number
|
|
280
|
+
declare function _number(constraints?: NumberConstraints): NumberValidator<number>;
|
|
281
|
+
|
|
282
|
+
declare function _number<N extends number>(constraints?: NumberConstraints): NumberValidator<N>;
|
|
283
|
+
|
|
284
|
+
declare function _number<B extends string>(constraints: BrandedNumberConstraints<B>): NumberValidator<number & Branding<B>>;
|
|
244
285
|
|
|
245
286
|
/** Constraints to validate a `number` with. */
|
|
246
287
|
declare interface NumberConstraints {
|
|
@@ -258,7 +299,7 @@ declare interface NumberConstraints {
|
|
|
258
299
|
allowNaN?: boolean;
|
|
259
300
|
}
|
|
260
301
|
|
|
261
|
-
/** A `Validator` validating `number`s. */
|
|
302
|
+
/** A `Validator` validating `number`s with constaints. */
|
|
262
303
|
export declare class NumberValidator<N extends number = number> extends Validator<N> {
|
|
263
304
|
#private;
|
|
264
305
|
readonly allowNaN: boolean;
|
|
@@ -267,9 +308,9 @@ export declare class NumberValidator<N extends number = number> extends Validato
|
|
|
267
308
|
readonly maximum: number;
|
|
268
309
|
readonly minimum: number;
|
|
269
310
|
readonly multipleOf?: number;
|
|
311
|
+
readonly brand?: string;
|
|
270
312
|
constructor(constraints?: NumberConstraints);
|
|
271
313
|
validate(value: unknown): N;
|
|
272
|
-
static readonly PRECISION = 1000000;
|
|
273
314
|
}
|
|
274
315
|
|
|
275
316
|
/** Validate `object`s. */
|
|
@@ -277,12 +318,21 @@ export declare const object: typeof _object & Iterable<TupleRestParameter<Record
|
|
|
277
318
|
|
|
278
319
|
declare function _object(): Validator<Record<string, any>>;
|
|
279
320
|
|
|
280
|
-
declare function _object<S extends Schema>(schema: S): S
|
|
321
|
+
declare function _object<S extends Schema>(schema: S): S & {
|
|
322
|
+
[Symbol.iterator](): Generator<TupleRestParameter<InferSchema<S>>>;
|
|
323
|
+
};
|
|
281
324
|
|
|
282
|
-
|
|
325
|
+
declare type ObjectProperty = {
|
|
326
|
+
validator: Validator;
|
|
327
|
+
readonly?: true;
|
|
328
|
+
optional?: true;
|
|
329
|
+
};
|
|
330
|
+
|
|
331
|
+
/** A `Validator` validating `object`s according to a `Schema`. */
|
|
283
332
|
export declare class ObjectValidator<S extends Schema> extends Validator<InferSchema<S>> {
|
|
284
|
-
#private;
|
|
285
333
|
readonly schema: Readonly<S>;
|
|
334
|
+
properties: Map<string, ObjectProperty | undefined>;
|
|
335
|
+
additionalProperties?: Validator;
|
|
286
336
|
constructor(schema: S);
|
|
287
337
|
validate(value: unknown, options: ValidationOptions): InferSchema<S>;
|
|
288
338
|
}
|
|
@@ -353,7 +403,11 @@ export declare const string: typeof _string & Iterable<TupleRestParameter<string
|
|
|
353
403
|
|
|
354
404
|
declare function _string(): Validator<string>;
|
|
355
405
|
|
|
356
|
-
declare function _string
|
|
406
|
+
declare function _string(constraints?: StringConstraints): StringValidator<string>;
|
|
407
|
+
|
|
408
|
+
declare function _string<S extends string>(constraints?: StringConstraints): StringValidator<S>;
|
|
409
|
+
|
|
410
|
+
declare function _string<B extends string>(constraints: BrandedStringConstraints<B>): StringValidator<string & Branding<B>>;
|
|
357
411
|
|
|
358
412
|
/** Constraints to validate a `string` with. */
|
|
359
413
|
declare interface StringConstraints {
|
|
@@ -365,11 +419,12 @@ declare interface StringConstraints {
|
|
|
365
419
|
pattern?: RegExp;
|
|
366
420
|
}
|
|
367
421
|
|
|
368
|
-
/** A `Validator` validating `string`s. */
|
|
422
|
+
/** A `Validator` validating `string`s with constraints. */
|
|
369
423
|
export declare class StringValidator<S extends string = string> extends Validator<S> {
|
|
370
424
|
readonly maxLength: number;
|
|
371
425
|
readonly minLength: number;
|
|
372
426
|
readonly pattern?: RegExp;
|
|
427
|
+
readonly brand?: string;
|
|
373
428
|
constructor(constraints?: StringConstraints);
|
|
374
429
|
validate(value: unknown): S;
|
|
375
430
|
}
|
|
@@ -382,6 +437,11 @@ export declare type Tuple = readonly (Validation | TupleRestParameter)[];
|
|
|
382
437
|
/** Validate _tuples_. */
|
|
383
438
|
export declare function tuple<T extends Tuple>(tuple: T): Validator<InferTuple<T>>;
|
|
384
439
|
|
|
440
|
+
declare interface TupleMember {
|
|
441
|
+
single: boolean;
|
|
442
|
+
validator: Validator;
|
|
443
|
+
}
|
|
444
|
+
|
|
385
445
|
/**
|
|
386
446
|
* The `TupleRestParameter` defines a tuple member that can occur several
|
|
387
447
|
* times while validating an array.
|
|
@@ -401,7 +461,7 @@ export declare type TupleRestParameter<T = any> = {
|
|
|
401
461
|
|
|
402
462
|
/** A `Validator` for _tuples_. */
|
|
403
463
|
export declare class TupleValidator<T extends Tuple> extends Validator<InferTuple<T>> {
|
|
404
|
-
|
|
464
|
+
readonly members: readonly TupleMember[];
|
|
405
465
|
readonly tuple: T;
|
|
406
466
|
constructor(tuple: T);
|
|
407
467
|
validate(value: unknown, options: ValidationOptions): InferTuple<T>;
|