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.
- 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 +158 -0
- package/dist/dts-generator.mjs.map +6 -0
- package/dist/{index.cjs → index.js} +246 -124
- package/dist/index.js.map +6 -0
- package/dist/index.mjs +218 -121
- package/dist/index.mjs.map +2 -2
- package/dts-generator.d.ts +13 -0
- package/{dist/index.d.ts → index.d.ts} +171 -40
- package/package.json +27 -16
- package/src/dts-generator.ts +276 -0
- package/src/errors.ts +3 -3
- package/src/index.ts +32 -8
- package/src/schema.ts +6 -6
- package/src/types.ts +15 -6
- package/src/validators/array.ts +14 -12
- package/src/validators/date.ts +3 -3
- package/src/validators/number.ts +54 -22
- package/src/validators/object.ts +67 -48
- package/src/validators/string.ts +25 -11
- package/src/validators/tuple.ts +17 -13
- package/src/validators/union.ts +3 -3
- package/src/validators/url.ts +140 -0
- package/dist/index.cjs.map +0 -6
|
@@ -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
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
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
|
-
|
|
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 =
|
|
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
|
-
|
|
213
|
+
const members = [];
|
|
211
214
|
for (const item of tuple2) {
|
|
212
215
|
if (item === null) {
|
|
213
|
-
|
|
216
|
+
members.push({ single: true, validator: nullValidator });
|
|
214
217
|
} else if (typeof item === "object" && restValidator in item) {
|
|
215
|
-
|
|
218
|
+
members.push({ single: false, validator: item[restValidator] });
|
|
216
219
|
} else {
|
|
217
|
-
|
|
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
|
|
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
|
|
232
|
-
while (needle < this
|
|
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
|
|
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
|
|
247
|
+
({ single, validator } = this.members[++needle] || {});
|
|
243
248
|
}
|
|
244
249
|
}
|
|
245
|
-
while (needle < this
|
|
250
|
+
while (needle < this.members.length && this.members[needle].single === false) {
|
|
246
251
|
needle++;
|
|
247
252
|
}
|
|
248
|
-
const missing = this
|
|
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
|
-
|
|
274
|
-
|
|
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
|
|
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
|
|
296
|
+
this.properties.set(key, void 0);
|
|
287
297
|
} else if (isModifier(definition)) {
|
|
288
|
-
(
|
|
298
|
+
this.properties.set(key, {
|
|
299
|
+
validator: definition[modifierValidator],
|
|
300
|
+
readonly: definition.readonly,
|
|
301
|
+
optional: definition.optional
|
|
302
|
+
});
|
|
289
303
|
} else {
|
|
290
|
-
this
|
|
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,
|
|
302
|
-
|
|
303
|
-
|
|
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
|
-
|
|
307
|
-
|
|
308
|
-
|
|
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
|
-
|
|
322
|
-
|
|
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
|
|
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
|
-
|
|
368
|
-
|
|
369
|
-
|
|
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
|
|
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
|
|
582
|
-
var
|
|
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
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
if (
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
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(
|
|
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
|
|
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
|
|
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.
|
|
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
|
+
}
|