justus 0.0.0-alpha.0 → 0.0.1
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 +601 -6
- package/dist/index.cjs +747 -0
- package/dist/index.cjs.map +6 -0
- package/dist/index.d.ts +504 -7
- package/dist/index.mjs +697 -0
- package/dist/index.mjs.map +6 -0
- package/package.json +19 -7
- package/src/errors.ts +126 -0
- package/src/index.ts +48 -6
- package/src/schema.ts +112 -0
- package/src/types.ts +298 -0
- package/src/utilities.ts +49 -0
- package/src/validators/any.ts +11 -0
- package/src/validators/array.ts +108 -0
- package/src/validators/boolean.ts +13 -0
- package/src/validators/constant.ts +25 -0
- package/src/validators/date.ts +78 -0
- package/src/validators/number.ts +131 -0
- package/src/validators/object.ts +126 -0
- package/src/validators/string.ts +70 -0
- package/src/validators/tuple.ts +86 -0
- package/src/validators/union.ts +81 -0
- package/dist/arrays.d.ts +0 -30
- package/dist/arrays.d.ts.map +0 -1
- package/dist/arrays.js +0 -39
- package/dist/arrays.js.map +0 -1
- package/dist/basics.d.ts +0 -32
- package/dist/basics.d.ts.map +0 -1
- package/dist/basics.js +0 -58
- package/dist/basics.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -29
- package/dist/index.js.map +0 -1
- package/dist/objects.d.ts +0 -4
- package/dist/objects.d.ts.map +0 -1
- package/dist/objects.js +0 -13
- package/dist/objects.js.map +0 -1
- package/dist/primitives.d.ts +0 -41
- package/dist/primitives.d.ts.map +0 -1
- package/dist/primitives.js +0 -16
- package/dist/primitives.js.map +0 -1
- package/dist/schemas.d.ts +0 -60
- package/dist/schemas.d.ts.map +0 -1
- package/dist/schemas.js +0 -24
- package/dist/schemas.js.map +0 -1
- package/dist/unions.d.ts +0 -19
- package/dist/unions.d.ts.map +0 -1
- package/dist/unions.js +0 -24
- package/dist/unions.js.map +0 -1
- package/dist/utils.d.ts +0 -5
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js +0 -28
- package/dist/utils.js.map +0 -1
- package/src/arrays.ts +0 -55
- package/src/basics.ts +0 -89
- package/src/objects.ts +0 -16
- package/src/primitives.ts +0 -62
- package/src/schemas.ts +0 -166
- package/src/unions.ts +0 -112
- package/src/utils.ts +0 -24
- package/tsconfig.json +0 -17
|
@@ -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"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,504 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
/**
|
|
2
|
+
* An interface defining whether a `Schema` should include additional
|
|
3
|
+
* properties, and the `Validator` used to validate them.
|
|
4
|
+
*/
|
|
5
|
+
export declare interface AdditionalProperties<V extends Validator | false> {
|
|
6
|
+
[additionalValidator]: V;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/** A symbol indicating the `Validator` for a `Schema`'s additional properties. */
|
|
10
|
+
export declare const additionalValidator: unique symbol;
|
|
11
|
+
|
|
12
|
+
/** Validate a value as _all of_ the specified arguments */
|
|
13
|
+
export declare function allOf<A extends UnionArguments>(...args: A): AllOfValidator<A>;
|
|
14
|
+
|
|
15
|
+
/** A `Validator` validating a value as _all of_ the specified arguments. */
|
|
16
|
+
export declare class AllOfValidator<A extends UnionArguments> extends Validator<InferAllOfValidationType<A>> {
|
|
17
|
+
readonly validators: readonly Validator[];
|
|
18
|
+
constructor(args: A);
|
|
19
|
+
validate(value: unknown, options: ValidationOptions): InferAllOfValidationType<A>;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Allow additional properties in `Schema`s.
|
|
24
|
+
*
|
|
25
|
+
* This function can be called with a `boolean` argument (`true` allow _any_
|
|
26
|
+
* additional property, `false` do not allow additional properties) or with a
|
|
27
|
+
* `Validation` that will be used to validate additional properties.
|
|
28
|
+
*
|
|
29
|
+
* @param allow - A `boolean` or a `Validator` instance
|
|
30
|
+
*/
|
|
31
|
+
export declare const allowAdditionalProperties: typeof _allowAdditionalProperties & AdditionalProperties<Validator<any>>;
|
|
32
|
+
|
|
33
|
+
/** Internal definition of `allowAdditionalProperties(...)` */
|
|
34
|
+
declare function _allowAdditionalProperties(): AdditionalProperties<Validator<any>>;
|
|
35
|
+
|
|
36
|
+
declare function _allowAdditionalProperties(allow: true): AdditionalProperties<Validator<any>>;
|
|
37
|
+
|
|
38
|
+
declare function _allowAdditionalProperties(allow: false): AdditionalProperties<false>;
|
|
39
|
+
|
|
40
|
+
declare function _allowAdditionalProperties<V extends Validation>(validation: V): AdditionalProperties<Validator<InferValidation<V>>>;
|
|
41
|
+
|
|
42
|
+
/** The `Validator` validating _anything_. */
|
|
43
|
+
export declare const any: AnyValidator;
|
|
44
|
+
|
|
45
|
+
/** A `Validator` validating _anything_. */
|
|
46
|
+
export declare class AnyValidator extends Validator<any> {
|
|
47
|
+
validate(value: unknown): any;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/** Validate `Array`s. */
|
|
51
|
+
export declare const array: typeof _array & Iterable<TupleRestParameter<any[]>>;
|
|
52
|
+
|
|
53
|
+
declare function _array(): Validator<any[]>;
|
|
54
|
+
|
|
55
|
+
declare function _array<V extends Validation>(constraints: ArrayConstraints<V>): ArrayValidator<InferValidation<V>>;
|
|
56
|
+
|
|
57
|
+
/** Constraints to validate an `Array` with. */
|
|
58
|
+
declare interface ArrayConstraints<V extends Validation> {
|
|
59
|
+
/** The _maximum_ number of elements a valid `Array`: `value.length <= maxItems` */
|
|
60
|
+
maxItems?: number;
|
|
61
|
+
/** The _minimum_ number of elements a valid `Array`: `value.length >= minItems` */
|
|
62
|
+
minItems?: number;
|
|
63
|
+
/** A flag indicating whether an `Array`'s elements must be unique */
|
|
64
|
+
uniqueItems?: boolean;
|
|
65
|
+
/** A `Validator` validating each individual item in an `Array` */
|
|
66
|
+
items?: V;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/** Validate `Array`s containing only the specified elements. */
|
|
70
|
+
export declare function arrayOf<V extends Validation>(validation: V): ArrayValidator<InferValidation<V>>;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* A validator for `Array` instances.
|
|
74
|
+
*/
|
|
75
|
+
export declare class ArrayValidator<T> extends Validator<T[]> {
|
|
76
|
+
readonly maxItems: number;
|
|
77
|
+
readonly minItems: number;
|
|
78
|
+
readonly uniqueItems: boolean;
|
|
79
|
+
readonly items: Validator<T>;
|
|
80
|
+
constructor(options?: ArrayConstraints<Validator<T>>);
|
|
81
|
+
validate(value: unknown, options: ValidationOptions): T[];
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Simple assertion function throwing `TypeError`(s) to be used when
|
|
86
|
+
* constructing a `Validator` from a `Schema` or validation constraints.
|
|
87
|
+
*/
|
|
88
|
+
export declare function assertSchema(what: boolean | undefined, message: string): asserts what;
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Simple assertion function throwing `ValidationError`(s) with an empty path
|
|
92
|
+
*/
|
|
93
|
+
export declare function assertValidation(what: boolean | undefined, message: string): asserts what;
|
|
94
|
+
|
|
95
|
+
/** The `Validator` for `boolean`s. */
|
|
96
|
+
export declare const boolean: BooleanValidator;
|
|
97
|
+
|
|
98
|
+
/** A `Validator` validating `boolean`s. */
|
|
99
|
+
export declare class BooleanValidator extends Validator<boolean> {
|
|
100
|
+
validate(value: unknown): boolean;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Mark a `Schema` property as both _optional_ and _read only_.
|
|
105
|
+
*/
|
|
106
|
+
export declare interface CombinedModifier<V extends Validator = Validator> extends ReadonlyModifier<V>, OptionalModifier<V>, Modifier<V> {
|
|
107
|
+
optional: true;
|
|
108
|
+
readonly: true;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
declare type CombineModifiers<M1 extends Modifier, M2 extends Modifier> = M1 extends ReadonlyModifier ? M2 extends ReadonlyModifier<infer V> ? ReadonlyModifier<V> : M2 extends OptionalModifier<infer V> ? CombinedModifier<V> : never : M1 extends OptionalModifier ? M2 extends ReadonlyModifier<infer V> ? CombinedModifier<V> : M2 extends OptionalModifier<infer V> ? OptionalModifier<V> : never : never;
|
|
112
|
+
|
|
113
|
+
/** Validate _constants_. */
|
|
114
|
+
export declare function constant<T extends string | number | boolean | null>(constant: T): Validator<T>;
|
|
115
|
+
|
|
116
|
+
/** A `Validator` for _constants_. */
|
|
117
|
+
export declare class ConstantValidator<T extends string | number | boolean | null> extends Validator<T> {
|
|
118
|
+
readonly constant: T;
|
|
119
|
+
constructor(constant: T);
|
|
120
|
+
validate(value: unknown): T;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/** Validate dates and convert them to `Date` instances. */
|
|
124
|
+
export declare const date: typeof _date & Iterable<TupleRestParameter<Date>>;
|
|
125
|
+
|
|
126
|
+
declare function _date(): DateValidator;
|
|
127
|
+
|
|
128
|
+
declare function _date(constraints: DateConstraints): DateValidator;
|
|
129
|
+
|
|
130
|
+
/** Constraints to validate a `Date` with. */
|
|
131
|
+
declare interface DateConstraints {
|
|
132
|
+
/** The format for dates, an _ISO date_ (RFC 3339) or a numeric timestamp */
|
|
133
|
+
format?: 'iso' | 'timestamp';
|
|
134
|
+
/** The earliest value a date can have */
|
|
135
|
+
from?: Date;
|
|
136
|
+
/** The latest value a date can have */
|
|
137
|
+
until?: Date;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/** A `Validator` validating dates and converting them to `Date` instances. */
|
|
141
|
+
export declare class DateValidator extends Validator<Date> {
|
|
142
|
+
readonly format?: 'iso' | 'timestamp';
|
|
143
|
+
readonly from?: Date;
|
|
144
|
+
readonly until?: Date;
|
|
145
|
+
constructor(constraints?: DateConstraints);
|
|
146
|
+
validate(value: unknown): Date;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* Return the `Validator` for the given `Validation`.
|
|
151
|
+
*
|
|
152
|
+
* When `validation` is `undefined` it will return a `Validator<any>`,
|
|
153
|
+
*/
|
|
154
|
+
export declare function getValidator(validation?: Validation): Validator;
|
|
155
|
+
|
|
156
|
+
declare type InferAllOfValidationType<A extends UnionArguments> = A extends readonly [infer First, ...infer Rest] ? First extends Validation ? Rest extends UnionArguments ? InferValidation<First> & InferOneOfValidationType<Rest> : InferValidation<First> : never : never;
|
|
157
|
+
|
|
158
|
+
/** Infer the type of _read only_ **and** _optional_ `Schema` properties */
|
|
159
|
+
declare type InferCombinedModifiers<S extends Schema> = {
|
|
160
|
+
readonly [key in keyof S as key extends string ? S[key] extends CombinedModifier ? key : never : never]?: S[key] extends CombinedModifier<infer V> ? InferValidation<V> : never;
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
/** Ensure that we properly type `never` properties */
|
|
164
|
+
declare type InferNever<S extends Schema> = {
|
|
165
|
+
[key in keyof S as key extends string ? S[key] extends typeof never ? key : never : never]: never;
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
declare type InferOneOfValidationType<A extends UnionArguments> = A extends readonly [infer First, ...infer Rest] ? First extends Validation ? Rest extends UnionArguments ? InferValidation<First> | InferOneOfValidationType<Rest> : InferValidation<First> : never : never;
|
|
169
|
+
|
|
170
|
+
/** Infer the type of _optional_ `Schema` properties */
|
|
171
|
+
declare type InferOptionalModifiers<S extends Schema> = {
|
|
172
|
+
[key in keyof S as key extends string ? S[key] extends ReadonlyModifier<Validator> ? never : S[key] extends OptionalModifier<Validator> ? key : never : never]?: S[key] extends OptionalModifier<infer V> ? InferValidation<V> : never;
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
/** Infer the type of _read only_ `Schema` properties */
|
|
176
|
+
declare type InferReadonlyModifiers<S extends Schema> = {
|
|
177
|
+
readonly [key in keyof S as key extends string ? S[key] extends OptionalModifier<Validator> ? never : S[key] extends ReadonlyModifier<Validator> ? key : never : never]: S[key] extends ReadonlyModifier<infer V> ? InferValidation<V> : never;
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
/** Infer the type of keys associated with `Validation`s */
|
|
181
|
+
declare type InferRequired<S extends Schema> = {
|
|
182
|
+
[key in keyof S as key extends string ? S[key] extends Validation ? key : never : never]: S[key] extends Validation ? InferValidation<S[key]> : never;
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
/** Infer the type validated by a `Schema` */
|
|
186
|
+
export declare type InferSchema<S extends Schema> = InferReadonlyModifiers<S> & InferOptionalModifiers<S> & InferCombinedModifiers<S> & (S extends AdditionalProperties<Validator<infer V>> ? Record<string, V> & InferNever<S> & InferRequired<S> : InferRequired<S>);
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Infer the type returned by a `TupleValidator` when validating an array.
|
|
190
|
+
*/
|
|
191
|
+
export declare type InferTuple<T> = T extends Tuple ? T extends readonly [] ? [] : T extends readonly [Validation, ...any[]] ? T extends readonly [infer V, ...infer Rest] ? [
|
|
192
|
+
InferValidation<V>,
|
|
193
|
+
...InferTuple<Rest>
|
|
194
|
+
] : never : T extends readonly [...any[], Validation] ? T extends readonly [...infer Rest, infer V] ? [
|
|
195
|
+
...InferTuple<Rest>,
|
|
196
|
+
InferValidation<V>
|
|
197
|
+
] : never : T extends readonly (infer V)[] ? [
|
|
198
|
+
...InferValidationOrTupleRest<V>[]
|
|
199
|
+
] : never : never;
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Infer the type returned by a `Validation` when validating.
|
|
203
|
+
*/
|
|
204
|
+
export declare type InferValidation<V> = V extends Validation ? V extends {
|
|
205
|
+
(...args: infer A0): Validator<infer R0>;
|
|
206
|
+
(...args: infer A1): Validator<infer R1>;
|
|
207
|
+
(...args: infer A2): Validator<infer R2>;
|
|
208
|
+
(...args: infer A3): Validator<infer R3>;
|
|
209
|
+
(...args: infer A4): Validator<infer R4>;
|
|
210
|
+
(...args: infer A5): Validator<infer R5>;
|
|
211
|
+
(...args: infer A6): Validator<infer R6>;
|
|
212
|
+
(...args: infer A7): Validator<infer R7>;
|
|
213
|
+
(...args: infer A8): Validator<infer R8>;
|
|
214
|
+
(...args: infer A9): Validator<infer R9>;
|
|
215
|
+
} ? A0 extends [] ? R0 : A1 extends [] ? R1 : A2 extends [] ? R2 : A3 extends [] ? R3 : A4 extends [] ? R4 : A5 extends [] ? R5 : A6 extends [] ? R6 : A7 extends [] ? R7 : A8 extends [] ? R8 : A9 extends [] ? R9 : never : V extends Validator<infer T> ? T : V extends Tuple ? InferTuple<V> : V extends Schema ? InferSchema<V> : V extends boolean ? V : V extends number ? V : V extends string ? V : V extends null ? V : never : never;
|
|
216
|
+
|
|
217
|
+
/** Infer the type validated by a `Validation` or `TupleRestParameter` */
|
|
218
|
+
declare type InferValidationOrTupleRest<T> = T extends TupleRestParameter<infer X> ? X : T extends Validation ? InferValidation<T> : never;
|
|
219
|
+
|
|
220
|
+
/** Type guard for `Modifier` instances */
|
|
221
|
+
export declare function isModifier(what: any): what is Modifier<any>;
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* A `Modifier` marks a `Schema` property either _read only_ and/or _optional_.
|
|
225
|
+
*/
|
|
226
|
+
export declare interface Modifier<V extends Validator = Validator> {
|
|
227
|
+
[modifierValidator]: V;
|
|
228
|
+
readonly?: true;
|
|
229
|
+
optional?: true;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
/** A symbol indicating the `Validator` for a `Modifier`. */
|
|
233
|
+
export declare const modifierValidator: unique symbol;
|
|
234
|
+
|
|
235
|
+
/** A symbol indicating that a `Schema` property is _forbidden_. */
|
|
236
|
+
export declare const never: unique symbol;
|
|
237
|
+
|
|
238
|
+
/** Validate `number`s. */
|
|
239
|
+
export declare const number: typeof _number & Iterable<TupleRestParameter<number>>;
|
|
240
|
+
|
|
241
|
+
declare function _number(): Validator<number>;
|
|
242
|
+
|
|
243
|
+
declare function _number<N extends number = number>(constraints?: NumberConstraints): NumberValidator<N>;
|
|
244
|
+
|
|
245
|
+
/** Constraints to validate a `number` with. */
|
|
246
|
+
declare interface NumberConstraints {
|
|
247
|
+
/** The value for which a `number` must be multiple of for it to be valid */
|
|
248
|
+
multipleOf?: number;
|
|
249
|
+
/** The _inclusive_ maximum value for a valid `number`: `value <= maximum` */
|
|
250
|
+
maximum?: number;
|
|
251
|
+
/** The _inclusive_ minimum value for a valid `number`: `value >= minimum` */
|
|
252
|
+
minimum?: number;
|
|
253
|
+
/** The _exclusive_ maximum value for a valid `number`: `value < exclusiveMaximum` */
|
|
254
|
+
exclusiveMaximum?: number;
|
|
255
|
+
/** The _exclusive_ minimum value for a valid `number`: `value > exclusiveMaximum` */
|
|
256
|
+
exclusiveMinimum?: number;
|
|
257
|
+
/** Whether to allow `NaN` or not (default: `false`) */
|
|
258
|
+
allowNaN?: boolean;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
/** A `Validator` validating `number`s. */
|
|
262
|
+
export declare class NumberValidator<N extends number = number> extends Validator<N> {
|
|
263
|
+
#private;
|
|
264
|
+
readonly allowNaN: boolean;
|
|
265
|
+
readonly exclusiveMaximum?: number;
|
|
266
|
+
readonly exclusiveMinimum?: number;
|
|
267
|
+
readonly maximum: number;
|
|
268
|
+
readonly minimum: number;
|
|
269
|
+
readonly multipleOf?: number;
|
|
270
|
+
constructor(constraints?: NumberConstraints);
|
|
271
|
+
validate(value: unknown): N;
|
|
272
|
+
static readonly PRECISION = 1000000;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
/** Validate `object`s. */
|
|
276
|
+
export declare const object: typeof _object & Iterable<TupleRestParameter<Record<string, any>>>;
|
|
277
|
+
|
|
278
|
+
declare function _object(): Validator<Record<string, any>>;
|
|
279
|
+
|
|
280
|
+
declare function _object<S extends Schema>(schema: S): S;
|
|
281
|
+
|
|
282
|
+
/** A `Validator` validating `object`s according to a `Schema` */
|
|
283
|
+
export declare class ObjectValidator<S extends Schema> extends Validator<InferSchema<S>> {
|
|
284
|
+
#private;
|
|
285
|
+
readonly schema: Readonly<S>;
|
|
286
|
+
constructor(schema: S);
|
|
287
|
+
validate(value: unknown, options: ValidationOptions): InferSchema<S>;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
/** Validate a value as _one of_ the specified arguments */
|
|
291
|
+
export declare function oneOf<A extends UnionArguments>(...args: A): OneOfValidator<A>;
|
|
292
|
+
|
|
293
|
+
/** A `Validator` validating a value as _one of_ the specified arguments. */
|
|
294
|
+
export declare class OneOfValidator<A extends UnionArguments> extends Validator<InferOneOfValidationType<A>> {
|
|
295
|
+
readonly validators: readonly Validator[];
|
|
296
|
+
constructor(args: A);
|
|
297
|
+
validate(value: unknown, options: ValidationOptions): InferOneOfValidationType<A>;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
/**
|
|
301
|
+
* Ensure that the property is marked as _optional_ in the `Schema`.
|
|
302
|
+
*
|
|
303
|
+
* @param validation - A `Validation` to be marked as _optional_.
|
|
304
|
+
*/
|
|
305
|
+
export declare function optional(): OptionalModifier<any>;
|
|
306
|
+
|
|
307
|
+
export declare function optional<V extends Validation>(validation: V): OptionalModifier<Validator<InferValidation<V>>>;
|
|
308
|
+
|
|
309
|
+
export declare function optional<M extends Modifier>(modifier: M): CombineModifiers<OptionalModifier, M>;
|
|
310
|
+
|
|
311
|
+
/**
|
|
312
|
+
* Mark a `Schema` property as _optional_.
|
|
313
|
+
*/
|
|
314
|
+
export declare interface OptionalModifier<V extends Validator = Validator> extends Modifier<V> {
|
|
315
|
+
optional: true;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
/**
|
|
319
|
+
* Ensure that the property is marked as _read only_ in the `Schema`.
|
|
320
|
+
*
|
|
321
|
+
* @param validation - A `Validation` to be marked as _read only_.
|
|
322
|
+
*/
|
|
323
|
+
export declare function readonly(): ReadonlyModifier<any>;
|
|
324
|
+
|
|
325
|
+
export declare function readonly<V extends Validation>(validation: V): ReadonlyModifier<Validator<InferValidation<V>>>;
|
|
326
|
+
|
|
327
|
+
export declare function readonly<M extends Modifier>(modifier: M): CombineModifiers<ReadonlyModifier, M>;
|
|
328
|
+
|
|
329
|
+
/**
|
|
330
|
+
* Mark a `Schema` property as _read only_.
|
|
331
|
+
*/
|
|
332
|
+
export declare interface ReadonlyModifier<V extends Validator = Validator> extends Modifier<V> {
|
|
333
|
+
readonly: true;
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
/** A symbol indicating the `Validator` for a `Tuple`'s rest parameter. */
|
|
337
|
+
export declare const restValidator: unique symbol;
|
|
338
|
+
|
|
339
|
+
/**
|
|
340
|
+
* The `Schema` interface defines what properties are defined for objects and
|
|
341
|
+
* how they should be validated.
|
|
342
|
+
*/
|
|
343
|
+
export declare interface Schema {
|
|
344
|
+
[key: string]: Validation | Modifier | typeof never;
|
|
345
|
+
[additionalValidator]?: Validator | false;
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
/** A symbol indicating the `Validator` for a `Schema`. */
|
|
349
|
+
export declare const schemaValidator: unique symbol;
|
|
350
|
+
|
|
351
|
+
/** Validate `string`s. */
|
|
352
|
+
export declare const string: typeof _string & Iterable<TupleRestParameter<string>>;
|
|
353
|
+
|
|
354
|
+
declare function _string(): Validator<string>;
|
|
355
|
+
|
|
356
|
+
declare function _string<S extends string = string>(constraints?: StringConstraints): StringValidator<S>;
|
|
357
|
+
|
|
358
|
+
/** Constraints to validate a `string` with. */
|
|
359
|
+
declare interface StringConstraints {
|
|
360
|
+
/** The _maximum_ length of a valid `string`: `value.length <= maxLength` */
|
|
361
|
+
maxLength?: number;
|
|
362
|
+
/** The _minimum_ length of a valid `string`: `value.length >= minLength` */
|
|
363
|
+
minLength?: number;
|
|
364
|
+
/** A `RegExp` enforcing a particular pattern for a valid `string`: `pattern.test(value)` */
|
|
365
|
+
pattern?: RegExp;
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
/** A `Validator` validating `string`s. */
|
|
369
|
+
export declare class StringValidator<S extends string = string> extends Validator<S> {
|
|
370
|
+
readonly maxLength: number;
|
|
371
|
+
readonly minLength: number;
|
|
372
|
+
readonly pattern?: RegExp;
|
|
373
|
+
constructor(constraints?: StringConstraints);
|
|
374
|
+
validate(value: unknown): S;
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
/**
|
|
378
|
+
* A `Tuple` is defined to be an array of `Validation` or `TupleRest`
|
|
379
|
+
*/
|
|
380
|
+
export declare type Tuple = readonly (Validation | TupleRestParameter)[];
|
|
381
|
+
|
|
382
|
+
/** Validate _tuples_. */
|
|
383
|
+
export declare function tuple<T extends Tuple>(tuple: T): Validator<InferTuple<T>>;
|
|
384
|
+
|
|
385
|
+
/**
|
|
386
|
+
* The `TupleRestParameter` defines a tuple member that can occur several
|
|
387
|
+
* times while validating an array.
|
|
388
|
+
*
|
|
389
|
+
* Every `Validator` is an `Iterable` of `TupleRestParameters` so that it can
|
|
390
|
+
* be used in tuples. For example, to indicate a tuple composed by a number,
|
|
391
|
+
* followed by zero or more non-empty strings we can write:
|
|
392
|
+
*
|
|
393
|
+
* ```
|
|
394
|
+
* const nonEmptyString = string({ minLength: 1 })
|
|
395
|
+
* const myTuple = tuple([ number, ...nonEmptyString ])
|
|
396
|
+
* ```
|
|
397
|
+
*/
|
|
398
|
+
export declare type TupleRestParameter<T = any> = {
|
|
399
|
+
[restValidator]: Validator<T>;
|
|
400
|
+
};
|
|
401
|
+
|
|
402
|
+
/** A `Validator` for _tuples_. */
|
|
403
|
+
export declare class TupleValidator<T extends Tuple> extends Validator<InferTuple<T>> {
|
|
404
|
+
#private;
|
|
405
|
+
readonly tuple: T;
|
|
406
|
+
constructor(tuple: T);
|
|
407
|
+
validate(value: unknown, options: ValidationOptions): InferTuple<T>;
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
declare type UnionArguments = readonly [Validation, ...Validation[]];
|
|
411
|
+
|
|
412
|
+
/** Validate a _value_ using the specified `Validation` */
|
|
413
|
+
export declare function validate<V extends Validation>(validation: V, value: any, options?: ValidateOptions): InferValidation<V>;
|
|
414
|
+
|
|
415
|
+
/** Options for `validate` */
|
|
416
|
+
export declare type ValidateOptions = {
|
|
417
|
+
-readonly [key in keyof ValidationOptions]?: ValidationOptions[key] | undefined;
|
|
418
|
+
};
|
|
419
|
+
|
|
420
|
+
/**
|
|
421
|
+
* The `Validation` type indicates all potential types which could be used
|
|
422
|
+
* as _sources_ for validation.
|
|
423
|
+
*
|
|
424
|
+
* Those are:
|
|
425
|
+
*
|
|
426
|
+
* * A `Validator` instance or a _zero-arguments_ function returning one
|
|
427
|
+
* * A `Tuple` or a `Schema`, validated as arrays or object
|
|
428
|
+
* * Either `null`, a `boolean`, a `number` or a `string` for constants
|
|
429
|
+
*/
|
|
430
|
+
export declare type Validation = (() => Validator) | Validator | // Validator instances or their creators
|
|
431
|
+
Tuple | Schema | // Tuples or schemas (arrays, objects)
|
|
432
|
+
null | boolean | number | string;
|
|
433
|
+
|
|
434
|
+
/**
|
|
435
|
+
* A `ValidationError` wraps one or more errors encountered during validation.
|
|
436
|
+
*/
|
|
437
|
+
export declare class ValidationError extends Error {
|
|
438
|
+
/** An `Array` of validation errors encountered while validating */
|
|
439
|
+
readonly errors: ValidationErrors;
|
|
440
|
+
/** Our stack, always present as we enforce it in the constructor */
|
|
441
|
+
readonly stack: string;
|
|
442
|
+
/**
|
|
443
|
+
* Create a new `ValidationError` instance from a `ValidationErrorBuilder`
|
|
444
|
+
* or with a `cause` (a string, or another error) and optional path.
|
|
445
|
+
*
|
|
446
|
+
* The `constructor` (optional last parameter) will restrict creation of
|
|
447
|
+
* this instance's stack up to the specified function.
|
|
448
|
+
*/
|
|
449
|
+
constructor(builder: ValidationErrorBuilder);
|
|
450
|
+
constructor(cause: any, constructor?: Function);
|
|
451
|
+
constructor(cause: any, path: (string | number)[], constructor?: Function);
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
/**
|
|
455
|
+
* Helper class to build a `ValidationError` associated p
|
|
456
|
+
*/
|
|
457
|
+
export declare class ValidationErrorBuilder {
|
|
458
|
+
/** The current list of validation errors */
|
|
459
|
+
readonly errors: ValidationErrors;
|
|
460
|
+
/**
|
|
461
|
+
* Record a validation error associated with the specified key.
|
|
462
|
+
*
|
|
463
|
+
* @param error - The error (normally a `string` or a `ValidationError`)
|
|
464
|
+
* to record and associate with the given key
|
|
465
|
+
* @param key - The key in an object, or index in an array where the
|
|
466
|
+
* vaildation error was encountered
|
|
467
|
+
*/
|
|
468
|
+
record(error: any, key?: string | number): this;
|
|
469
|
+
/**
|
|
470
|
+
* Assert there are no validation errors and return the specified value, or
|
|
471
|
+
* throw a `ValidationError` combining all errors
|
|
472
|
+
*
|
|
473
|
+
* @param value - The value to return if no errors have been recorded
|
|
474
|
+
*/
|
|
475
|
+
assert<T>(value: T): T;
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
declare type ValidationErrors = {
|
|
479
|
+
path: (string | number)[];
|
|
480
|
+
message: string;
|
|
481
|
+
}[];
|
|
482
|
+
|
|
483
|
+
/**
|
|
484
|
+
* Options to be using while validating.
|
|
485
|
+
*/
|
|
486
|
+
export declare interface ValidationOptions {
|
|
487
|
+
/** Strip additional, undeclared properties from objects */
|
|
488
|
+
readonly stripAdditionalProperties: boolean;
|
|
489
|
+
/** Ignore and strip forbidden (`never`) properties from objects */
|
|
490
|
+
readonly stripForbiddenProperties: boolean;
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
/**
|
|
494
|
+
* A `Validator` is an object capable of validating a given _value_ and
|
|
495
|
+
* (possibly) converting it the required type `T`.
|
|
496
|
+
*/
|
|
497
|
+
export declare abstract class Validator<T = any> implements Iterable<TupleRestParameter<T>> {
|
|
498
|
+
/** Validate a _value_ and optionally convert it to the required `Type` */
|
|
499
|
+
abstract validate(value: unknown, options: ValidationOptions): T;
|
|
500
|
+
/** Allow any `Validator` to be used as a rest parameter in `Tuple`s */
|
|
501
|
+
[Symbol.iterator](): Generator<TupleRestParameter<T>>;
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
export { }
|