justus 0.4.2 → 0.5.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 +78 -0
- package/dist/dts-generator.cjs +36 -22
- package/dist/dts-generator.cjs.map +1 -1
- package/dist/dts-generator.d.ts +1 -1
- package/dist/dts-generator.mjs +15 -22
- package/dist/dts-generator.mjs.map +1 -1
- package/dist/extra/arn.cjs +101 -0
- package/dist/extra/arn.cjs.map +6 -0
- package/dist/extra/arn.d.ts +73 -0
- package/dist/extra/arn.mjs +71 -0
- package/dist/extra/arn.mjs.map +6 -0
- package/dist/extra/ean13.cjs +52 -0
- package/dist/extra/ean13.cjs.map +6 -0
- package/dist/extra/ean13.d.ts +9 -0
- package/dist/extra/ean13.mjs +26 -0
- package/dist/extra/ean13.mjs.map +6 -0
- package/dist/{validators → extra}/url.cjs +4 -6
- package/dist/{validators → extra}/url.cjs.map +3 -3
- package/dist/{validators → extra}/url.d.ts +2 -2
- package/dist/{validators → extra}/url.mjs +4 -6
- package/dist/{validators → extra}/url.mjs.map +3 -3
- package/dist/extra/uuid.cjs +45 -0
- package/dist/extra/uuid.cjs.map +6 -0
- package/dist/extra/uuid.d.ts +10 -0
- package/dist/extra/uuid.mjs +18 -0
- package/dist/extra/uuid.mjs.map +6 -0
- package/dist/index.cjs +0 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.mjs +0 -3
- package/dist/index.mjs.map +1 -1
- package/dist/registry.cjs +44 -0
- package/dist/registry.cjs.map +6 -0
- package/dist/registry.d.ts +16 -0
- package/dist/registry.mjs +19 -0
- package/dist/registry.mjs.map +6 -0
- package/dist/schema.cjs +3 -5
- package/dist/schema.cjs.map +1 -1
- package/dist/schema.d.ts +6 -5
- package/dist/schema.mjs +3 -4
- package/dist/schema.mjs.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.ts +38 -12
- package/dist/types.mjs.map +1 -1
- package/dist/utilities.cjs +5 -7
- package/dist/utilities.cjs.map +1 -1
- package/dist/utilities.mjs +5 -7
- package/dist/utilities.mjs.map +1 -1
- package/dist/validators/array.cjs.map +1 -1
- package/dist/validators/array.d.ts +1 -1
- package/dist/validators/array.mjs.map +1 -1
- package/dist/validators/constant.cjs +4 -5
- package/dist/validators/constant.cjs.map +1 -1
- package/dist/validators/constant.d.ts +0 -2
- package/dist/validators/constant.mjs +3 -3
- package/dist/validators/constant.mjs.map +1 -1
- package/dist/validators/date.cjs +2 -6
- package/dist/validators/date.cjs.map +1 -1
- package/dist/validators/date.d.ts +1 -1
- package/dist/validators/date.mjs +2 -6
- package/dist/validators/date.mjs.map +1 -1
- package/dist/validators/number.cjs.map +1 -1
- package/dist/validators/number.d.ts +1 -1
- package/dist/validators/number.mjs.map +1 -1
- package/dist/validators/object.cjs +3 -2
- package/dist/validators/object.cjs.map +1 -1
- package/dist/validators/object.d.ts +4 -4
- package/dist/validators/object.mjs +4 -7
- package/dist/validators/object.mjs.map +1 -1
- package/dist/validators/optional.cjs.map +1 -1
- package/dist/validators/optional.d.ts +5 -4
- package/dist/validators/optional.mjs.map +1 -1
- package/dist/validators/string.cjs.map +1 -1
- package/dist/validators/string.d.ts +1 -1
- package/dist/validators/string.mjs.map +1 -1
- package/dist/validators/tuple.cjs +3 -2
- package/dist/validators/tuple.cjs.map +1 -1
- package/dist/validators/tuple.d.ts +3 -3
- package/dist/validators/tuple.mjs +3 -2
- package/dist/validators/tuple.mjs.map +1 -1
- package/dist/validators/union.cjs.map +1 -1
- package/dist/validators/union.d.ts +9 -7
- package/dist/validators/union.mjs.map +1 -1
- package/package.json +43 -3
- package/src/dts-generator.ts +17 -27
- package/src/extra/arn.ts +172 -0
- package/src/extra/ean13.ts +31 -0
- package/src/{validators → extra}/url.ts +4 -6
- package/src/extra/uuid.ts +18 -0
- package/src/index.ts +0 -2
- package/src/registry.ts +28 -0
- package/src/schema.ts +10 -11
- package/src/types.ts +80 -11
- package/src/utilities.ts +5 -9
- package/src/validators/array.ts +1 -1
- package/src/validators/constant.ts +3 -2
- package/src/validators/date.ts +7 -7
- package/src/validators/number.ts +1 -1
- package/src/validators/object.ts +13 -12
- package/src/validators/optional.ts +9 -7
- package/src/validators/string.ts +1 -1
- package/src/validators/tuple.ts +20 -6
- package/src/validators/union.ts +35 -10
package/dist/types.d.ts
CHANGED
|
@@ -27,13 +27,13 @@ export declare const defaultValidationOptions: Readonly<Required<ValidationOptio
|
|
|
27
27
|
* A `Validator` is an object capable of validating a given _value_ and
|
|
28
28
|
* (possibly) converting it the required type `T`.
|
|
29
29
|
*/
|
|
30
|
-
export interface Validator<T = any> extends Iterable<TupleRestParameter<T>> {
|
|
30
|
+
export interface Validator<T = any, I = T> extends Iterable<TupleRestParameter<T, I>> {
|
|
31
31
|
[Symbol.justusValidator]: this;
|
|
32
32
|
optional?: boolean;
|
|
33
33
|
/** Validate a _value_ and optionally convert it to the required `Type` */
|
|
34
34
|
validate(value: unknown, options?: ValidationOptions | undefined): T;
|
|
35
35
|
/** Allow any `Validator` to be used as a rest parameter in `Tuple`s */
|
|
36
|
-
[Symbol.iterator](): Generator<TupleRestParameter<T>>;
|
|
36
|
+
[Symbol.iterator](): Generator<TupleRestParameter<T, I>>;
|
|
37
37
|
}
|
|
38
38
|
/**
|
|
39
39
|
* Create a validator "factory", that is a function that when invoked will
|
|
@@ -46,13 +46,13 @@ export declare function makeValidatorFactory<V extends Validator, F extends (...
|
|
|
46
46
|
* A `Validator` is an object capable of validating a given _value_ and
|
|
47
47
|
* (possibly) converting it the required type `T`.
|
|
48
48
|
*/
|
|
49
|
-
export declare abstract class AbstractValidator<T =
|
|
49
|
+
export declare abstract class AbstractValidator<T, I = T> implements Validator<T, I>, Iterable<TupleRestParameter<T, I>> {
|
|
50
50
|
[Symbol.justusValidator]: this;
|
|
51
51
|
optional?: boolean;
|
|
52
52
|
/** Validate a _value_ and optionally convert it to the required `Type` */
|
|
53
53
|
abstract validate(value: unknown, options?: ValidationOptions | undefined): T;
|
|
54
54
|
/** Allow any `Validator` to be used as a rest parameter in `Tuple`s */
|
|
55
|
-
[Symbol.iterator](): Generator<TupleRestParameter<T>>;
|
|
55
|
+
[Symbol.iterator](): Generator<TupleRestParameter<T, I>>;
|
|
56
56
|
}
|
|
57
57
|
/**
|
|
58
58
|
* The `Validation` type indicates all potential types which could be used
|
|
@@ -70,13 +70,19 @@ null | boolean | number | string;
|
|
|
70
70
|
/**
|
|
71
71
|
* Infer the type returned by a `Validation` when validating.
|
|
72
72
|
*/
|
|
73
|
-
export type InferValidation<V> = V extends Validator<infer T> ? T : V extends undefined ? V : V extends boolean ? V : V extends number ? V : V extends string ? V : V extends null ? V : V extends Tuple ? InferTuple<V> : InferSchema<V>;
|
|
73
|
+
export type InferValidation<V> = V extends Validator<infer T, any> ? T : V extends undefined ? V : V extends boolean ? V : V extends number ? V : V extends string ? V : V extends null ? V : V extends Tuple ? InferTuple<V> : InferSchema<V>;
|
|
74
|
+
/**
|
|
75
|
+
* Infer the type compatible with a `Validation`'s input.
|
|
76
|
+
*/
|
|
77
|
+
export type InferInput<V> = V extends Validator<any, infer T> ? T : V extends undefined ? V : V extends boolean ? V : V extends number ? V : V extends string ? V : V extends null ? V : V extends Tuple ? InferInputTuple<V> : InferInputSchema<V>;
|
|
74
78
|
/** Infer the type validated by a `Validation` or `TupleRestParameter` */
|
|
75
|
-
export type InferValidationOrTupleRest<T> = T extends TupleRestParameter<infer X> ? X : T extends Validation ? InferValidation<T> : never;
|
|
79
|
+
export type InferValidationOrTupleRest<T> = T extends TupleRestParameter<infer X, any> ? X : T extends Validation ? InferValidation<T> : never;
|
|
80
|
+
/** Infer the input type for a `Validation` or `TupleRestParameter` */
|
|
81
|
+
export type InferInputValidationOrTupleRest<T> = T extends TupleRestParameter<any, infer X> ? X : T extends Validation ? InferInput<T> : never;
|
|
76
82
|
/**
|
|
77
83
|
* A `Tuple` is defined to be an array of `Validation` or `TupleRest`
|
|
78
84
|
*/
|
|
79
|
-
export type Tuple = readonly (Validation | TupleRestParameter)[];
|
|
85
|
+
export type Tuple = readonly (Validation | TupleRestParameter<any, any>)[];
|
|
80
86
|
/**
|
|
81
87
|
* The `TupleRestParameter` defines a tuple member that can occur several
|
|
82
88
|
* times while validating an array.
|
|
@@ -90,8 +96,8 @@ export type Tuple = readonly (Validation | TupleRestParameter)[];
|
|
|
90
96
|
* const myTuple = tuple([ number, ...nonEmptyString ])
|
|
91
97
|
* ```
|
|
92
98
|
*/
|
|
93
|
-
export type TupleRestParameter<T
|
|
94
|
-
[Symbol.justusRestValidator]: Validator<T>;
|
|
99
|
+
export type TupleRestParameter<T, I> = {
|
|
100
|
+
[Symbol.justusRestValidator]: Validator<T, I>;
|
|
95
101
|
};
|
|
96
102
|
/**
|
|
97
103
|
* Infer the type returned by a `TupleValidator` when validating an array.
|
|
@@ -105,6 +111,18 @@ export type InferTuple<T> = T extends Tuple ? T extends readonly [] ? [] : T ext
|
|
|
105
111
|
] : never : T extends readonly (infer V)[] ? [
|
|
106
112
|
...InferValidationOrTupleRest<V>[]
|
|
107
113
|
] : never : never;
|
|
114
|
+
/**
|
|
115
|
+
* Infer a time compatible with a `TupleValidator`'s input.
|
|
116
|
+
*/
|
|
117
|
+
export type InferInputTuple<T> = T extends Tuple ? T extends readonly [] ? [] : T extends readonly [Validation, ...any[]] ? T extends readonly [infer V, ...infer Rest] ? [
|
|
118
|
+
InferInput<V>,
|
|
119
|
+
...InferInputTuple<Rest>
|
|
120
|
+
] : never : T extends readonly [...any[], Validation] ? T extends readonly [...infer Rest, infer V] ? [
|
|
121
|
+
...InferInputTuple<Rest>,
|
|
122
|
+
InferInput<V>
|
|
123
|
+
] : never : T extends readonly (infer V)[] ? [
|
|
124
|
+
...InferInputValidationOrTupleRest<V>[]
|
|
125
|
+
] : never : never;
|
|
108
126
|
/**
|
|
109
127
|
* The `Schema` interface defines what properties are defined for objects and
|
|
110
128
|
* how they should be validated.
|
|
@@ -130,9 +148,17 @@ export type InferSchema2<S> = {
|
|
|
130
148
|
} & {
|
|
131
149
|
[key in keyof S as key extends string ? undefined extends InferValidation<S[key]> ? never : key : never]-?: InferValidation<S[key]>;
|
|
132
150
|
};
|
|
151
|
+
/** Infer the input type compatible with a `Schema` */
|
|
152
|
+
export type InferInputSchema<S> = S extends AdditionalProperties<Validator<any, infer X>> ? {
|
|
153
|
+
[key in string]: X;
|
|
154
|
+
} & InferInputSchema2<S> : InferInputSchema2<S>;
|
|
155
|
+
/** Infer the input type of the properties described by a `Schema` */
|
|
156
|
+
export type InferInputSchema2<S> = {
|
|
157
|
+
[key in keyof S as key extends string ? key : never]?: InferInput<S[key]>;
|
|
158
|
+
} & {
|
|
159
|
+
[key in keyof S as key extends string ? InferInput<S[key]> extends never ? never : undefined extends InferInput<S[key]> ? never : key : never]-?: InferInput<S[key]>;
|
|
160
|
+
};
|
|
133
161
|
/** Utility type to infer primitive branding according to a string */
|
|
134
162
|
export type Branding<S extends string> = {
|
|
135
|
-
[
|
|
136
|
-
__brand: never;
|
|
137
|
-
} as `__brand_${S}`]: never;
|
|
163
|
+
[brand in `__brand_${S}`]: never;
|
|
138
164
|
};
|
package/dist/types.mjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/types.ts"],
|
|
4
|
-
"mappings": ";AAgBA,OAAO,iBAAiB,QAAQ;AAAA,EAC9B,iBAAiB,EAAE,OAAO,OAAO,IAAI,kBAAkB,EAAE;AAAA,EACzD,qBAAqB,EAAE,OAAO,OAAO,IAAI,sBAAsB,EAAE;AAAA,EACjE,2BAA2B,EAAE,OAAO,OAAO,IAAI,4BAA4B,EAAE;AAC/E,CAAC;AAqBM,IAAM,2BAAkE;AAAA,EAC7E,2BAA2B;AAAA,EAC3B,0BAA0B;AAAA,EAC1B,oBAAoB;AACtB;AAwBO,SAAS,qBAGd,WAAc,SAAmB;AACjC,SAAO,OAAO,OAAO,SAAS;AAAA,IAC5B,UAAU,UAAU;AAAA,IACpB,UAAU,UAAU,SAAS,KAAK,SAAS;AAAA,IAC3C,CAAC,OAAO,QAAQ,GAAG,UAAU,OAAO,QAAQ,EAAE,KAAK,SAAS;AAAA,IAC5D,CAAC,OAAO,eAAe,GAAG;AAAA,EAC5B,CAAC;AACH;AAMO,IAAe,oBAAf,
|
|
4
|
+
"mappings": ";AAgBA,OAAO,iBAAiB,QAAQ;AAAA,EAC9B,iBAAiB,EAAE,OAAO,OAAO,IAAI,kBAAkB,EAAE;AAAA,EACzD,qBAAqB,EAAE,OAAO,OAAO,IAAI,sBAAsB,EAAE;AAAA,EACjE,2BAA2B,EAAE,OAAO,OAAO,IAAI,4BAA4B,EAAE;AAC/E,CAAC;AAqBM,IAAM,2BAAkE;AAAA,EAC7E,2BAA2B;AAAA,EAC3B,0BAA0B;AAAA,EAC1B,oBAAoB;AACtB;AAwBO,SAAS,qBAGd,WAAc,SAAmB;AACjC,SAAO,OAAO,OAAO,SAAS;AAAA,IAC5B,UAAU,UAAU;AAAA,IACpB,UAAU,UAAU,SAAS,KAAK,SAAS;AAAA,IAC3C,CAAC,OAAO,QAAQ,GAAG,UAAU,OAAO,QAAQ,EAAE,KAAK,SAAS;AAAA,IAC5D,CAAC,OAAO,eAAe,GAAG;AAAA,EAC5B,CAAC;AACH;AAMO,IAAe,oBAAf,MACwD;AAAA,EAC7D,CAAC,OAAO,eAAe,IAAI;AAAA,EAE3B,WAAqB;AAAA;AAAA,EAMrB,EAAG,OAAO,QAAQ,IAAyC;AACzD,UAAM,EAAE,CAAC,OAAO,mBAAmB,GAAG,KAAK;AAAA,EAC7C;AACF;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/utilities.cjs
CHANGED
|
@@ -23,12 +23,10 @@ __export(utilities_exports, {
|
|
|
23
23
|
getValidator: () => getValidator
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(utilities_exports);
|
|
26
|
-
var
|
|
27
|
-
var import_object = require("./validators/object.cjs");
|
|
28
|
-
var import_tuple = require("./validators/tuple.cjs");
|
|
26
|
+
var import_registry = require("./registry.cjs");
|
|
29
27
|
function getValidator(validation) {
|
|
30
28
|
if (validation === null)
|
|
31
|
-
return
|
|
29
|
+
return new (import_registry.registry.get("constant"))(null);
|
|
32
30
|
if (validation[Symbol.justusValidator]) {
|
|
33
31
|
return validation[Symbol.justusValidator];
|
|
34
32
|
}
|
|
@@ -36,11 +34,11 @@ function getValidator(validation) {
|
|
|
36
34
|
case "boolean":
|
|
37
35
|
case "string":
|
|
38
36
|
case "number":
|
|
39
|
-
return new
|
|
37
|
+
return new (import_registry.registry.get("constant"))(validation);
|
|
40
38
|
case "object":
|
|
41
39
|
if (Array.isArray(validation))
|
|
42
|
-
return new
|
|
43
|
-
return new
|
|
40
|
+
return new (import_registry.registry.get("tuple"))(validation);
|
|
41
|
+
return new (import_registry.registry.get("object"))(validation);
|
|
44
42
|
default:
|
|
45
43
|
throw new TypeError(`Invalid validation (type=${typeof validation})`);
|
|
46
44
|
}
|
package/dist/utilities.cjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/utilities.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAAyB;AAalB,SAAS,aAAa,YAAmC;AAE9D,MAAI,eAAe;AAAM,WAAO,KAAK,yBAAS,IAAI,UAAU,GAAG,IAAI;AAGnE,MAAW,WAAY,OAAO,eAAe,GAAG;AAC9C,WAAc,WAAY,OAAO,eAAe;AAAA,EAClD;AAGA,UAAQ,OAAO,YAAY;AAAA,IAEzB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO,KAAK,yBAAS,IAAI,UAAU,GAAG,UAAU;AAAA,IAGlD,KAAK;AAEH,UAAI,MAAM,QAAQ,UAAU;AAAG,eAAO,KAAK,yBAAS,IAAI,OAAO,GAAG,UAAU;AAE5E,aAAO,KAAK,yBAAS,IAAI,QAAQ,GAAG,UAAoB;AAAA,IAG1D;AACE,YAAM,IAAI,UAAU,4BAA4B,OAAO,UAAU,GAAG;AAAA,EACxE;AACF;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/utilities.mjs
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
// utilities.ts
|
|
2
|
-
import {
|
|
3
|
-
import { ObjectValidator } from "./validators/object.mjs";
|
|
4
|
-
import { TupleValidator } from "./validators/tuple.mjs";
|
|
2
|
+
import { registry } from "./registry.mjs";
|
|
5
3
|
function getValidator(validation) {
|
|
6
4
|
if (validation === null)
|
|
7
|
-
return
|
|
5
|
+
return new (registry.get("constant"))(null);
|
|
8
6
|
if (validation[Symbol.justusValidator]) {
|
|
9
7
|
return validation[Symbol.justusValidator];
|
|
10
8
|
}
|
|
@@ -12,11 +10,11 @@ function getValidator(validation) {
|
|
|
12
10
|
case "boolean":
|
|
13
11
|
case "string":
|
|
14
12
|
case "number":
|
|
15
|
-
return new
|
|
13
|
+
return new (registry.get("constant"))(validation);
|
|
16
14
|
case "object":
|
|
17
15
|
if (Array.isArray(validation))
|
|
18
|
-
return new
|
|
19
|
-
return new
|
|
16
|
+
return new (registry.get("tuple"))(validation);
|
|
17
|
+
return new (registry.get("object"))(validation);
|
|
20
18
|
default:
|
|
21
19
|
throw new TypeError(`Invalid validation (type=${typeof validation})`);
|
|
22
20
|
}
|
package/dist/utilities.mjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/utilities.ts"],
|
|
4
|
-
"mappings": ";AAAA,SAAS,
|
|
4
|
+
"mappings": ";AAAA,SAAS,gBAAgB;AAalB,SAAS,aAAa,YAAmC;AAE9D,MAAI,eAAe;AAAM,WAAO,KAAK,SAAS,IAAI,UAAU,GAAG,IAAI;AAGnE,MAAW,WAAY,OAAO,eAAe,GAAG;AAC9C,WAAc,WAAY,OAAO,eAAe;AAAA,EAClD;AAGA,UAAQ,OAAO,YAAY;AAAA,IAEzB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO,KAAK,SAAS,IAAI,UAAU,GAAG,UAAU;AAAA,IAGlD,KAAK;AAEH,UAAI,MAAM,QAAQ,UAAU;AAAG,eAAO,KAAK,SAAS,IAAI,OAAO,GAAG,UAAU;AAE5E,aAAO,KAAK,SAAS,IAAI,QAAQ,GAAG,UAAoB;AAAA,IAG1D;AACE,YAAM,IAAI,UAAU,4BAA4B,OAAO,UAAU,GAAG;AAAA,EACxE;AACF;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/validators/array.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAuE;AACvE,mBAAwD;AACxD,uBAA6B;AAC7B,iBAAoB;AAqBb,IAAM,oBAAN,cAAyC,+
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAuE;AACvE,mBAAwD;AACxD,uBAA6B;AAC7B,iBAAoB;AAqBb,IAAM,oBAAN,cAAyC,+BAA4B;AAAA,EAC1E,SAAS,OAAqB;AAC5B,wCAAiB,MAAM,QAAQ,KAAK,GAAG,yBAAyB;AAChE,WAAO,CAAE,GAAG,KAAM;AAAA,EACpB;AACF;AAGO,IAAM,iBAAN,cAAgC,+BAAuB;AAAA,EACnD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAET,YAAY,UAA0C,CAAC,GAAG;AACxD,UAAM;AAEN,UAAM;AAAA,MACJ,QAAQ;AAAA,MACR,WAAW,OAAO;AAAA,MAClB,WAAW;AAAA,MACX,cAAc;AAAA,IAChB,IAAI;AAEJ,oCAAa,YAAY,GAAG,0BAA0B,QAAQ,wBAAwB;AACtF,oCAAa,YAAY,GAAG,0BAA0B,QAAQ,wBAAwB;AACtF,oCAAa,YAAY,UAAU,0BAA0B,QAAQ,iCAAiC,QAAQ,GAAG;AAEjH,SAAK,QAAQ;AACb,SAAK,WAAW;AAChB,SAAK,WAAW;AAChB,SAAK,cAAc;AAAA,EACrB;AAAA,EAEA,SAAS,OAAgB,SAAkC;AACzD,wCAAiB,MAAM,QAAQ,KAAK,GAAG,yBAAyB;AAEhE;AAAA,MAAiB,MAAM,UAAU,KAAK;AAAA,MAClC,uCAAuC,KAAK,QAAQ;AAAA,IAAE;AAE1D;AAAA,MAAiB,MAAM,UAAU,KAAK;AAAA,MAClC,uCAAuC,KAAK,QAAQ;AAAA,IAAE;AAE1D,UAAM,UAAU,IAAI,qCAAuB;AAC3C,UAAM,QAAe,IAAI,MAAM,MAAM,MAAM;AAE3C,UAAM,QAAQ,CAAC,MAAM,MAAM;AACzB,UAAI;AACF,cAAM,WAAW,MAAM,QAAQ,MAAM,CAAC,CAAC;AACvC,YAAI,aAAa,GAAG;AAClB,gBAAM,CAAC,IAAI,KAAK,MAAM,SAAS,MAAM,OAAO;AAAA,QAC9C,WAAW,KAAK,aAAa;AAC3B,kBAAQ,OAAO,8BAA8B,QAAQ,IAAI,CAAC;AAAA,QAC5D,OAAO;AACL,gBAAM,CAAC,IAAI,MAAM,QAAQ;AAAA,QAC3B;AAAA,MACF,SAAS,OAAO;AACd,gBAAQ,OAAO,OAAO,CAAC;AAAA,MACzB;AAAA,IACF,CAAC;AAED,WAAO,QAAQ,OAAO,KAAK;AAAA,EAC7B;AACF;AAIO,SAAS,aAAmC,aAAsE;AACvH,QAAM,QAAQ,YAAY,YAAQ,+BAAa,YAAY,KAAK,IAAI;AACpE,SAAO,IAAI,eAAe,EAAE,GAAG,aAAa,MAAM,CAAC;AACrD;AAGO,IAAM,YAAQ,mCAAqB,IAAI,kBAAkB,GAAG,YAAY;AAGxE,SAAS,QAA8B,YAAgD;AAC5F,SAAO,IAAI,eAAe,EAAE,WAAO,+BAAa,UAAU,EAAE,CAAC;AAC/D;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -12,7 +12,7 @@ export interface ArrayConstraints<V extends Validation> {
|
|
|
12
12
|
items?: V;
|
|
13
13
|
}
|
|
14
14
|
/** Basic validator for `Array` instances. */
|
|
15
|
-
export declare class AnyArrayValidator<T = any> extends AbstractValidator<T[]> {
|
|
15
|
+
export declare class AnyArrayValidator<T = any> extends AbstractValidator<T[], T[]> {
|
|
16
16
|
validate(value: unknown): T[];
|
|
17
17
|
}
|
|
18
18
|
/** A validator for `Array` instances with constraints. */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/validators/array.ts"],
|
|
4
|
-
"mappings": ";AAAA,SAAS,cAAc,kBAAkB,8BAA8B;AACvE,SAAS,mBAAmB,4BAA4B;AACxD,SAAS,oBAAoB;AAC7B,SAAS,WAAW;AAqBb,IAAM,oBAAN,cAAyC,
|
|
4
|
+
"mappings": ";AAAA,SAAS,cAAc,kBAAkB,8BAA8B;AACvE,SAAS,mBAAmB,4BAA4B;AACxD,SAAS,oBAAoB;AAC7B,SAAS,WAAW;AAqBb,IAAM,oBAAN,cAAyC,kBAA4B;AAAA,EAC1E,SAAS,OAAqB;AAC5B,qBAAiB,MAAM,QAAQ,KAAK,GAAG,yBAAyB;AAChE,WAAO,CAAE,GAAG,KAAM;AAAA,EACpB;AACF;AAGO,IAAM,iBAAN,cAAgC,kBAAuB;AAAA,EACnD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAET,YAAY,UAA0C,CAAC,GAAG;AACxD,UAAM;AAEN,UAAM;AAAA,MACJ,QAAQ;AAAA,MACR,WAAW,OAAO;AAAA,MAClB,WAAW;AAAA,MACX,cAAc;AAAA,IAChB,IAAI;AAEJ,iBAAa,YAAY,GAAG,0BAA0B,QAAQ,wBAAwB;AACtF,iBAAa,YAAY,GAAG,0BAA0B,QAAQ,wBAAwB;AACtF,iBAAa,YAAY,UAAU,0BAA0B,QAAQ,iCAAiC,QAAQ,GAAG;AAEjH,SAAK,QAAQ;AACb,SAAK,WAAW;AAChB,SAAK,WAAW;AAChB,SAAK,cAAc;AAAA,EACrB;AAAA,EAEA,SAAS,OAAgB,SAAkC;AACzD,qBAAiB,MAAM,QAAQ,KAAK,GAAG,yBAAyB;AAEhE;AAAA,MAAiB,MAAM,UAAU,KAAK;AAAA,MAClC,uCAAuC,KAAK,QAAQ;AAAA,IAAE;AAE1D;AAAA,MAAiB,MAAM,UAAU,KAAK;AAAA,MAClC,uCAAuC,KAAK,QAAQ;AAAA,IAAE;AAE1D,UAAM,UAAU,IAAI,uBAAuB;AAC3C,UAAM,QAAe,IAAI,MAAM,MAAM,MAAM;AAE3C,UAAM,QAAQ,CAAC,MAAM,MAAM;AACzB,UAAI;AACF,cAAM,WAAW,MAAM,QAAQ,MAAM,CAAC,CAAC;AACvC,YAAI,aAAa,GAAG;AAClB,gBAAM,CAAC,IAAI,KAAK,MAAM,SAAS,MAAM,OAAO;AAAA,QAC9C,WAAW,KAAK,aAAa;AAC3B,kBAAQ,OAAO,8BAA8B,QAAQ,IAAI,CAAC;AAAA,QAC5D,OAAO;AACL,gBAAM,CAAC,IAAI,MAAM,QAAQ;AAAA,QAC3B;AAAA,MACF,SAAS,OAAO;AACd,gBAAQ,OAAO,OAAO,CAAC;AAAA,MACzB;AAAA,IACF,CAAC;AAED,WAAO,QAAQ,OAAO,KAAK;AAAA,EAC7B;AACF;AAIO,SAAS,aAAmC,aAAsE;AACvH,QAAM,QAAQ,YAAY,QAAQ,aAAa,YAAY,KAAK,IAAI;AACpE,SAAO,IAAI,eAAe,EAAE,GAAG,aAAa,MAAM,CAAC;AACrD;AAGO,IAAM,QAAQ,qBAAqB,IAAI,kBAAkB,GAAG,YAAY;AAGxE,SAAS,QAA8B,YAAgD;AAC5F,SAAO,IAAI,eAAe,EAAE,OAAO,aAAa,UAAU,EAAE,CAAC;AAC/D;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -21,11 +21,11 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
21
21
|
var constant_exports = {};
|
|
22
22
|
__export(constant_exports, {
|
|
23
23
|
ConstantValidator: () => ConstantValidator,
|
|
24
|
-
constant: () => constant
|
|
25
|
-
nullValidator: () => nullValidator
|
|
24
|
+
constant: () => constant
|
|
26
25
|
});
|
|
27
26
|
module.exports = __toCommonJS(constant_exports);
|
|
28
27
|
var import_errors = require("../errors.cjs");
|
|
28
|
+
var import_registry = require("../registry.cjs");
|
|
29
29
|
var import_types = require("../types.cjs");
|
|
30
30
|
var ConstantValidator = class extends import_types.AbstractValidator {
|
|
31
31
|
constant;
|
|
@@ -41,11 +41,10 @@ var ConstantValidator = class extends import_types.AbstractValidator {
|
|
|
41
41
|
function constant(constant2) {
|
|
42
42
|
return new ConstantValidator(constant2);
|
|
43
43
|
}
|
|
44
|
-
|
|
44
|
+
import_registry.registry.set("constant", ConstantValidator);
|
|
45
45
|
// Annotate the CommonJS export names for ESM import in node:
|
|
46
46
|
0 && (module.exports = {
|
|
47
47
|
ConstantValidator,
|
|
48
|
-
constant
|
|
49
|
-
nullValidator
|
|
48
|
+
constant
|
|
50
49
|
});
|
|
51
50
|
//# sourceMappingURL=constant.cjs.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/validators/constant.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAiC;AACjC,sBAAyB;AACzB,mBAAkC;AAK3B,IAAM,oBAAN,cAA4E,+BAAqB;AAAA,EAC7F;AAAA,EAET,YAAYA,WAAa;AACvB,UAAM;AACN,SAAK,WAAWA;AAAA,EAClB;AAAA,EAEA,SAAS,OAAmB;AAC1B,wCAAiB,UAAU,KAAK,UAAU,kCAAkC,KAAK,QAAQ,GAAG;AAC5F,WAAO;AAAA,EACT;AACF;AAGO,SAAS,SAAqDA,WAA2B;AAC9F,SAAO,IAAI,kBAAkBA,SAAQ;AACvC;AAGA,yBAAS,IAAI,YAAY,iBAAiB;",
|
|
5
5
|
"names": ["constant"]
|
|
6
6
|
}
|
|
@@ -8,5 +8,3 @@ export declare class ConstantValidator<T extends string | number | boolean | nul
|
|
|
8
8
|
}
|
|
9
9
|
/** Validate _constants_. */
|
|
10
10
|
export declare function constant<T extends string | number | boolean | null>(constant: T): Validator<T>;
|
|
11
|
-
/** The `Validator` for the `null` constant. */
|
|
12
|
-
export declare const nullValidator: ConstantValidator<null>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// validators/constant.ts
|
|
2
2
|
import { assertValidation } from "../errors.mjs";
|
|
3
|
+
import { registry } from "../registry.mjs";
|
|
3
4
|
import { AbstractValidator } from "../types.mjs";
|
|
4
5
|
var ConstantValidator = class extends AbstractValidator {
|
|
5
6
|
constant;
|
|
@@ -15,10 +16,9 @@ var ConstantValidator = class extends AbstractValidator {
|
|
|
15
16
|
function constant(constant2) {
|
|
16
17
|
return new ConstantValidator(constant2);
|
|
17
18
|
}
|
|
18
|
-
|
|
19
|
+
registry.set("constant", ConstantValidator);
|
|
19
20
|
export {
|
|
20
21
|
ConstantValidator,
|
|
21
|
-
constant
|
|
22
|
-
nullValidator
|
|
22
|
+
constant
|
|
23
23
|
};
|
|
24
24
|
//# sourceMappingURL=constant.mjs.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/validators/constant.ts"],
|
|
4
|
-
"mappings": ";AAAA,SAAS,wBAAwB;AACjC,SAAS,yBAAyB;AAK3B,IAAM,oBAAN,cAA4E,kBAAqB;AAAA,EAC7F;AAAA,EAET,YAAYA,WAAa;AACvB,UAAM;AACN,SAAK,WAAWA;AAAA,EAClB;AAAA,EAEA,SAAS,OAAmB;AAC1B,qBAAiB,UAAU,KAAK,UAAU,kCAAkC,KAAK,QAAQ,GAAG;AAC5F,WAAO;AAAA,EACT;AACF;AAGO,SAAS,SAAqDA,WAA2B;AAC9F,SAAO,IAAI,kBAAkBA,SAAQ;AACvC;
|
|
4
|
+
"mappings": ";AAAA,SAAS,wBAAwB;AACjC,SAAS,gBAAgB;AACzB,SAAS,yBAAyB;AAK3B,IAAM,oBAAN,cAA4E,kBAAqB;AAAA,EAC7F;AAAA,EAET,YAAYA,WAAa;AACvB,UAAM;AACN,SAAK,WAAWA;AAAA,EAClB;AAAA,EAEA,SAAS,OAAmB;AAC1B,qBAAiB,UAAU,KAAK,UAAU,kCAAkC,KAAK,QAAQ,GAAG;AAC5F,WAAO;AAAA,EACT;AACF;AAGO,SAAS,SAAqDA,WAA2B;AAC9F,SAAO,IAAI,kBAAkBA,SAAQ;AACvC;AAGA,SAAS,IAAI,YAAY,iBAAiB;",
|
|
5
5
|
"names": ["constant"]
|
|
6
6
|
}
|
package/dist/validators/date.cjs
CHANGED
|
@@ -46,12 +46,8 @@ var DateValidator = class extends import_types.AbstractValidator {
|
|
|
46
46
|
this.until = until;
|
|
47
47
|
}
|
|
48
48
|
validate(value) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
date2 = new Date(value);
|
|
52
|
-
} catch (error) {
|
|
53
|
-
throw new import_errors.ValidationError('Value could not be converted to a "Date"');
|
|
54
|
-
}
|
|
49
|
+
const date2 = value instanceof Date ? new Date(value.getTime()) : typeof value === "string" ? new Date(value) : typeof value === "number" ? new Date(value) : void 0;
|
|
50
|
+
(0, import_errors.assertValidation)(!!date2, 'Value could not be converted to a "Date"');
|
|
55
51
|
if (isNaN(date2.getTime()))
|
|
56
52
|
throw new import_errors.ValidationError("Invalid date");
|
|
57
53
|
if (this.format === "iso") {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/validators/date.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAgE;AAChE,mBAAwD;AAGxD,IAAM,iBAAiB;AAahB,IAAM,gBAAN,cAA4B,+
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAgE;AAChE,mBAAwD;AAGxD,IAAM,iBAAiB;AAahB,IAAM,gBAAN,cAA4B,+BAAgD;AAAA,EACxE;AAAA,EACA;AAAA,EACA;AAAA,EAET,YAAY,cAA+B,CAAC,GAAG;AAC7C,UAAM;AAEN,UAAM,EAAE,QAAQ,MAAM,MAAM,IAAI;AAEhC,QAAK,QAAQ,UAAe,UAAU,QAAY;AAChD;AAAA,QAAa,MAAM,QAAQ,KAAK,KAAK,QAAQ;AAAA,QACzC,uBAAuB,MAAM,YAAY,CAAC,gCAAgC,KAAK,YAAY,CAAC;AAAA,MAAG;AAAA,IACrG;AAEA,SAAK,SAAS;AACd,SAAK,OAAO;AACZ,SAAK,QAAQ;AAAA,EACf;AAAA,EAEA,SAAS,OAAsB;AAC7B,UAAMA,QACF,iBAAiB,OAAO,IAAI,KAAK,MAAM,QAAQ,CAAC,IAChD,OAAO,UAAU,WAAW,IAAI,KAAK,KAAK,IAC1C,OAAO,UAAU,WAAW,IAAI,KAAK,KAAK,IAC1C;AACJ,wCAAiB,CAAC,CAAEA,OAAM,0CAA0C;AAEpE,QAAI,MAAMA,MAAK,QAAQ,CAAC;AAAG,YAAM,IAAI,8BAAgB,cAAc;AAEnE,QAAI,KAAK,WAAW,OAAO;AACzB,0CAAiB,OAAO,UAAU,UAAU,4BAA4B;AACxE,0CAAiB,eAAe,KAAK,KAAK,GAAG,6BAA6B;AAAA,IAC5E,WAAW,KAAK,WAAW,aAAa;AACtC,0CAAiB,OAAO,UAAU,UAAU,6BAA6B;AAAA,IAC3E;AAEA,QAAI,KAAK,MAAM;AACb,0CAAiB,KAAK,KAAK,QAAQ,KAAKA,MAAK,QAAQ,GAAG,kBAAkB,KAAK,KAAK,YAAY,CAAC,EAAE;AAAA,IACrG;AAEA,QAAI,KAAK,OAAO;AACd,0CAAiB,KAAK,MAAM,QAAQ,KAAKA,MAAK,QAAQ,GAAG,iBAAiB,KAAK,MAAM,YAAY,CAAC,EAAE;AAAA,IACtG;AAEA,WAAOA;AAAA,EACT;AACF;AAEO,SAAS,YAAY,aAA6C;AACvE,SAAO,IAAI,cAAc,WAAW;AACtC;AAGO,IAAM,WAAO,mCAAqB,IAAI,cAAc,GAAG,WAAW;",
|
|
5
5
|
"names": ["date"]
|
|
6
6
|
}
|
|
@@ -9,7 +9,7 @@ export interface DateConstraints {
|
|
|
9
9
|
until?: Date;
|
|
10
10
|
}
|
|
11
11
|
/** A `Validator` validating dates and converting them to `Date` instances. */
|
|
12
|
-
export declare class DateValidator extends AbstractValidator<Date> {
|
|
12
|
+
export declare class DateValidator extends AbstractValidator<Date, Date | string | number> {
|
|
13
13
|
readonly format?: 'iso' | 'timestamp';
|
|
14
14
|
readonly from?: Date;
|
|
15
15
|
readonly until?: Date;
|
package/dist/validators/date.mjs
CHANGED
|
@@ -20,12 +20,8 @@ var DateValidator = class extends AbstractValidator {
|
|
|
20
20
|
this.until = until;
|
|
21
21
|
}
|
|
22
22
|
validate(value) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
date2 = new Date(value);
|
|
26
|
-
} catch (error) {
|
|
27
|
-
throw new ValidationError('Value could not be converted to a "Date"');
|
|
28
|
-
}
|
|
23
|
+
const date2 = value instanceof Date ? new Date(value.getTime()) : typeof value === "string" ? new Date(value) : typeof value === "number" ? new Date(value) : void 0;
|
|
24
|
+
assertValidation(!!date2, 'Value could not be converted to a "Date"');
|
|
29
25
|
if (isNaN(date2.getTime()))
|
|
30
26
|
throw new ValidationError("Invalid date");
|
|
31
27
|
if (this.format === "iso") {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/validators/date.ts"],
|
|
4
|
-
"mappings": ";AAAA,SAAS,cAAc,kBAAkB,uBAAuB;AAChE,SAAS,mBAAmB,4BAA4B;AAGxD,IAAM,iBAAiB;AAahB,IAAM,gBAAN,cAA4B,
|
|
4
|
+
"mappings": ";AAAA,SAAS,cAAc,kBAAkB,uBAAuB;AAChE,SAAS,mBAAmB,4BAA4B;AAGxD,IAAM,iBAAiB;AAahB,IAAM,gBAAN,cAA4B,kBAAgD;AAAA,EACxE;AAAA,EACA;AAAA,EACA;AAAA,EAET,YAAY,cAA+B,CAAC,GAAG;AAC7C,UAAM;AAEN,UAAM,EAAE,QAAQ,MAAM,MAAM,IAAI;AAEhC,QAAK,QAAQ,UAAe,UAAU,QAAY;AAChD;AAAA,QAAa,MAAM,QAAQ,KAAK,KAAK,QAAQ;AAAA,QACzC,uBAAuB,MAAM,YAAY,CAAC,gCAAgC,KAAK,YAAY,CAAC;AAAA,MAAG;AAAA,IACrG;AAEA,SAAK,SAAS;AACd,SAAK,OAAO;AACZ,SAAK,QAAQ;AAAA,EACf;AAAA,EAEA,SAAS,OAAsB;AAC7B,UAAMA,QACF,iBAAiB,OAAO,IAAI,KAAK,MAAM,QAAQ,CAAC,IAChD,OAAO,UAAU,WAAW,IAAI,KAAK,KAAK,IAC1C,OAAO,UAAU,WAAW,IAAI,KAAK,KAAK,IAC1C;AACJ,qBAAiB,CAAC,CAAEA,OAAM,0CAA0C;AAEpE,QAAI,MAAMA,MAAK,QAAQ,CAAC;AAAG,YAAM,IAAI,gBAAgB,cAAc;AAEnE,QAAI,KAAK,WAAW,OAAO;AACzB,uBAAiB,OAAO,UAAU,UAAU,4BAA4B;AACxE,uBAAiB,eAAe,KAAK,KAAK,GAAG,6BAA6B;AAAA,IAC5E,WAAW,KAAK,WAAW,aAAa;AACtC,uBAAiB,OAAO,UAAU,UAAU,6BAA6B;AAAA,IAC3E;AAEA,QAAI,KAAK,MAAM;AACb,uBAAiB,KAAK,KAAK,QAAQ,KAAKA,MAAK,QAAQ,GAAG,kBAAkB,KAAK,KAAK,YAAY,CAAC,EAAE;AAAA,IACrG;AAEA,QAAI,KAAK,OAAO;AACd,uBAAiB,KAAK,MAAM,QAAQ,KAAKA,MAAK,QAAQ,GAAG,iBAAiB,KAAK,MAAM,YAAY,CAAC,EAAE;AAAA,IACtG;AAEA,WAAOA;AAAA,EACT;AACF;AAEO,SAAS,YAAY,aAA6C;AACvE,SAAO,IAAI,cAAc,WAAW;AACtC;AAGO,IAAM,OAAO,qBAAqB,IAAI,cAAc,GAAG,WAAW;",
|
|
5
5
|
"names": ["date"]
|
|
6
6
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/validators/number.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAgE;AAChE,mBAAwD;AAMxD,IAAM,YAAY;AAClB,IAAM,aAAa,KAAK,IAAI,IAAI,SAAS;AAEzC,SAAS,cAAc,GAAmB;AAExC,QAAM,QAAQ,EAAE,cAAc,EAAE,MAAM,yBAAyB;AAC/D,MAAI,CAAE;AAAO,UAAM,IAAI,WAAW,sCAAsC,CAAC,GAAG;AAE5E,QAAM,UAAW,MAAM,CAAC,KAAK,KAAK,SAAS,IAAM,SAAS,MAAM,CAAC,CAAC;AAClE,SAAO,SAAS,IAAI,IAAI;AAC1B;AA6BO,IAAM,qBAAN,cAAiC,+BAA0B;AAAA,EAChE,SAAS,OAAwB;AAC/B,wCAAiB,OAAO,SAAS,UAAU,yBAAyB;AACpE,wCAAiB,CAAE,MAAM,KAAK,GAAG,iBAAiB;AAClD,WAAO;AAAA,EACT;AACF;AAGO,IAAM,kBAAN,cAAyD,+
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -27,7 +27,7 @@ export declare class AnyNumberValidator extends AbstractValidator<number> {
|
|
|
27
27
|
validate(value: unknown): number;
|
|
28
28
|
}
|
|
29
29
|
/** A `Validator` validating `number`s with constaints. */
|
|
30
|
-
export declare class NumberValidator<N extends number = number> extends AbstractValidator<N> {
|
|
30
|
+
export declare class NumberValidator<N extends number = number> extends AbstractValidator<N, number> {
|
|
31
31
|
#private;
|
|
32
32
|
readonly allowNaN: boolean;
|
|
33
33
|
readonly exclusiveMaximum?: number;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/validators/number.ts"],
|
|
4
|
-
"mappings": ";AAAA,SAAS,cAAc,kBAAkB,uBAAuB;AAChE,SAAS,mBAAmB,4BAA4B;AAMxD,IAAM,YAAY;AAClB,IAAM,aAAa,KAAK,IAAI,IAAI,SAAS;AAEzC,SAAS,cAAc,GAAmB;AAExC,QAAM,QAAQ,EAAE,cAAc,EAAE,MAAM,yBAAyB;AAC/D,MAAI,CAAE;AAAO,UAAM,IAAI,WAAW,sCAAsC,CAAC,GAAG;AAE5E,QAAM,UAAW,MAAM,CAAC,KAAK,KAAK,SAAS,IAAM,SAAS,MAAM,CAAC,CAAC;AAClE,SAAO,SAAS,IAAI,IAAI;AAC1B;AA6BO,IAAM,qBAAN,cAAiC,kBAA0B;AAAA,EAChE,SAAS,OAAwB;AAC/B,qBAAiB,OAAO,SAAS,UAAU,yBAAyB;AACpE,qBAAiB,CAAE,MAAM,KAAK,GAAG,iBAAiB;AAClD,WAAO;AAAA,EACT;AACF;AAGO,IAAM,kBAAN,cAAyD,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -28,7 +28,7 @@ __export(object_exports, {
|
|
|
28
28
|
});
|
|
29
29
|
module.exports = __toCommonJS(object_exports);
|
|
30
30
|
var import_errors = require("../errors.cjs");
|
|
31
|
-
var
|
|
31
|
+
var import_registry = require("../registry.cjs");
|
|
32
32
|
var import_types = require("../types.cjs");
|
|
33
33
|
var import_utilities = require("../utilities.cjs");
|
|
34
34
|
var AnyObjectValidator = class extends import_types.AbstractValidator {
|
|
@@ -118,8 +118,9 @@ function objectFactory(schema) {
|
|
|
118
118
|
}
|
|
119
119
|
var object = (0, import_types.makeValidatorFactory)(new AnyObjectValidator(), objectFactory);
|
|
120
120
|
function objectOf(validation) {
|
|
121
|
-
return new ObjectValidator({
|
|
121
|
+
return new ObjectValidator({ [Symbol.justusAdditionalValidator]: (0, import_utilities.getValidator)(validation) });
|
|
122
122
|
}
|
|
123
|
+
import_registry.registry.set("object", ObjectValidator);
|
|
123
124
|
// Annotate the CommonJS export names for ESM import in node:
|
|
124
125
|
0 && (module.exports = {
|
|
125
126
|
AnyObjectValidator,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/validators/object.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAyD;
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAyD;AACzD,sBAAyB;AACzB,mBAAkF;AAClF,uBAA6B;AActB,IAAM,qBAAN,cAAiC,+BAAuC;AAAA,EAC7E,SAAS,OAAqC;AAC5C,wCAAiB,OAAO,SAAS,UAAU,0BAA0B;AACrE,wCAAiB,UAAU,MAAM,iBAAiB;AAClD,WAAO;AAAA,EACT;AACF;AAGO,IAAM,kBAAN,cAAgD,+BAAuD;AAAA,EACnG;AAAA,EAET,aAAa,oBAAI,IAAuB;AAAA,EACxC;AAAA,EAEA,YAAY,QAAW;AACrB,UAAM;AACN,UAAM,EAAE,CAAC,OAAO,yBAAyB,GAAG,YAAY,GAAG,WAAW,IAAI;AAE1E,QAAI;AAAY,WAAK,uBAAuB;AAE5C,eAAW,OAAO,OAAO,KAAK,UAAU,GAAG;AACzC,WAAK,WAAW,IAAI,SAAK,+BAAa,WAAW,GAAG,CAAC,CAAC;AAAA,IACxD;AAEA,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,SAAS,OAAgB,UAA6B,uCAA0C;AAC9F,wCAAiB,OAAO,UAAU,UAAU,0BAA0B;AACtE,wCAAiB,UAAU,MAAM,iBAAiB;AAElD,UAAM,EAAE,2BAA2B,mBAAmB,IAAI;AAE1D,UAAM,SAA0D;AAChE,UAAM,UAAU,IAAI,qCAAuB;AAC3C,UAAM,QAA6B,CAAC;AAEpC,eAAW,CAAE,KAAK,SAAU,KAAK,KAAK,WAAW,QAAQ,GAAG;AAC1D,YAAM,WAAW,CAAC,CAAE,UAAU;AAC9B,YAAM,WAAW,OAAO,GAAG;AAG3B,UAAI,sBAAsB,YAAa,aAAa,MAAO;AACzD;AAAA,MACF;AAMA,UAAI,aAAa,QAAW;AAC1B,YAAI;AAEF,gBAAM,YAAY,UAAU,SAAS,UAAU,OAAO;AAEtD,cAAI,EAAG,YAAa,aAAa;AAAa,kBAAM,GAAG,IAAI;AAAA,QAC7D,SAAS,OAAO;AACd,cAAI;AAAU;AACd,kBAAQ,OAAO,6BAA6B,GAAG;AAAA,QAEjD;AAEA;AAAA,MACF;AAGA,UAAI;AACF,cAAM,YAAY,UAAU,SAAS,UAAU,OAAO;AAEtD,YAAI,EAAG,YAAa,aAAa;AAAa,gBAAM,GAAG,IAAI;AAAA,MAC7D,SAAS,OAAO;AACd,gBAAQ,OAAO,OAAO,GAAG;AAAA,MAC3B;AAAA,IACF;AAGA,UAAM,iBAAiB,OAAO,KAAK,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,WAAW,IAAI,CAAC,CAAC;AAChF,UAAM,aAAa,KAAK;AAExB,QAAI,YAAY;AACd,qBAAe,QAAQ,CAAC,QAAQ;AAC9B,YAAI,OAAO,GAAG,MAAM;AAAW;AAC/B,YAAI;AACF,gBAAM,GAAG,IAAI,WAAW,SAAS,OAAO,GAAG,GAAG,OAAO;AAAA,QACvD,SAAS,OAAO;AACd,kBAAQ,OAAO,OAAO,GAAG;AAAA,QAC3B;AAAA,MACF,CAAC;AAAA,IACH,WAAW,CAAE,2BAA2B;AACtC,qBAAe,QAAQ,CAAC,QAAQ;AAC9B,YAAI,OAAO,GAAG,MAAM;AAAW,kBAAQ,OAAO,oBAAoB,GAAG;AAAA,MACvE,CAAC;AAAA,IACH;AAEA,WAAO,QAAQ,OAAO,KAAuB;AAAA,EAC/C;AACF;AAEO,SAAS,cAAgC,QAE9C;AACA,QAAM,YAAY,IAAI,gBAAgB,MAAM;AAE5C,YAAU,WAAoD;AAC5D,UAAM,EAAE,CAAC,OAAO,mBAAmB,GAAG,UAAU;AAAA,EAClD;AAEA,SAAO,OAAO,iBAAiB,QAAQ;AAAA,IACrC,CAAC,OAAO,eAAe,GAAG,EAAE,OAAO,WAAW,YAAY,MAAM;AAAA,IAChE,CAAC,OAAO,QAAQ,GAAG,EAAE,OAAO,UAAU,YAAY,MAAM;AAAA,EAC1D,CAAC;AACH;AAGO,IAAM,aAAS,mCAAqB,IAAI,mBAAmB,GAAG,aAAa;AAG3E,SAAS,SAA+B,YAA8D;AAC3G,SAAO,IAAI,gBAAgB,EAAE,CAAC,OAAO,yBAAyB,OAAG,+BAAa,UAAU,EAAE,CAAC;AAC7F;AAGA,yBAAS,IAAI,UAAU,eAAe;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { AbstractValidator } from '../types';
|
|
2
|
-
import type { InferSchema, InferValidation, Schema, TupleRestParameter, Validation, ValidationOptions, Validator } from '../types';
|
|
2
|
+
import type { InferInputSchema, InferSchema, InferValidation, Schema, TupleRestParameter, Validation, ValidationOptions, Validator } from '../types';
|
|
3
3
|
/** A `Validator` validating any `object`. */
|
|
4
4
|
export declare class AnyObjectValidator extends AbstractValidator<Record<string, any>> {
|
|
5
5
|
validate(value: unknown): Record<string, any>;
|
|
6
6
|
}
|
|
7
7
|
/** A `Validator` validating `object`s according to a `Schema`. */
|
|
8
|
-
export declare class ObjectValidator<S extends Schema> extends AbstractValidator<InferSchema<S>> {
|
|
8
|
+
export declare class ObjectValidator<S extends Schema> extends AbstractValidator<InferSchema<S>, InferInputSchema<S>> {
|
|
9
9
|
readonly schema: Readonly<S>;
|
|
10
|
-
validators: Map<string, Validator<any>>;
|
|
10
|
+
validators: Map<string, Validator<any, any>>;
|
|
11
11
|
additionalProperties?: Validator;
|
|
12
12
|
constructor(schema: S);
|
|
13
13
|
validate(value: unknown, options?: ValidationOptions): InferSchema<S>;
|
|
14
14
|
}
|
|
15
15
|
export declare function objectFactory<S extends Schema>(schema: S): S & {
|
|
16
|
-
[Symbol.iterator](): Generator<TupleRestParameter<InferSchema<S>>>;
|
|
16
|
+
[Symbol.iterator](): Generator<TupleRestParameter<InferSchema<S>, InferInputSchema<S>>>;
|
|
17
17
|
};
|
|
18
18
|
/** Validate `object`s. */
|
|
19
19
|
export declare const object: typeof objectFactory & AnyObjectValidator;
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
// validators/object.ts
|
|
2
2
|
import { assertValidation, ValidationErrorBuilder } from "../errors.mjs";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
AbstractValidator,
|
|
6
|
-
defaultValidationOptions,
|
|
7
|
-
makeValidatorFactory
|
|
8
|
-
} from "../types.mjs";
|
|
3
|
+
import { registry } from "../registry.mjs";
|
|
4
|
+
import { AbstractValidator, defaultValidationOptions, makeValidatorFactory } from "../types.mjs";
|
|
9
5
|
import { getValidator } from "../utilities.mjs";
|
|
10
6
|
var AnyObjectValidator = class extends AbstractValidator {
|
|
11
7
|
validate(value) {
|
|
@@ -94,8 +90,9 @@ function objectFactory(schema) {
|
|
|
94
90
|
}
|
|
95
91
|
var object = makeValidatorFactory(new AnyObjectValidator(), objectFactory);
|
|
96
92
|
function objectOf(validation) {
|
|
97
|
-
return new ObjectValidator({
|
|
93
|
+
return new ObjectValidator({ [Symbol.justusAdditionalValidator]: getValidator(validation) });
|
|
98
94
|
}
|
|
95
|
+
registry.set("object", ObjectValidator);
|
|
99
96
|
export {
|
|
100
97
|
AnyObjectValidator,
|
|
101
98
|
ObjectValidator,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/validators/object.ts"],
|
|
4
|
-
"mappings": ";AAAA,SAAS,kBAAkB,8BAA8B;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/validators/optional.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA4D;AAC5D,uBAA6B;AAOtB,IAAM,oBAAN,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA4D;AAC5D,uBAA6B;AAOtB,IAAM,oBAAN,cAIG,+BAA0E;AAAA,EAClF;AAAA,EACA;AAAA,EAKA,YAAY,WAAyB,cAAkB;AACrD,UAAM;AACN,SAAK,YAAY;AACjB,SAAK,WAAY,iBAAiB;AAClC,QAAI,KAAK,UAAU;AACjB,WAAK,eAAe;AACpB;AAAA,IACF;AAEA,QAAI;AACF,WAAK,eAAe,UAAU,SAAS,cAAc,qCAAwB;AAAA,IAC/E,SAAS,OAAO;AACd,YAAM,IAAI,UAAU,0CAA0C,EAAE,MAAM,CAAC;AAAA,IACzE;AAAA,EACF;AAAA,EAGA,SAAS,OAAgB,SAA4C;AACnE,QAAI,UAAU;AAAW,aAAO,KAAK;AACrC,WAAO,KAAK,UAAU,SAAS,OAAO,OAAO;AAAA,EAC/C;AACF;AAeO,SAAS,SAEd,YAAe,cAA2E;AAC1F,QAAM,gBAAY,+BAAa,UAAU;AACzC,SAAO,IAAI,kBAAkB,WAAW,YAAY;AACtD;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { AbstractValidator } from '../types';
|
|
2
|
-
import type { InferValidation, Validation, ValidationOptions, Validator } from '../types';
|
|
2
|
+
import type { InferInput, InferValidation, Validation, ValidationOptions, Validator } from '../types';
|
|
3
3
|
/**
|
|
4
4
|
* A `Validator` for _optional_ properties (that is `type | undefined`).
|
|
5
5
|
*/
|
|
6
6
|
export declare class OptionalValidator<T = any, // the type of the "validation", that is the optional type to validate
|
|
7
|
-
|
|
7
|
+
I = T, // the _input_ type of the "validation", that is anything acceptable
|
|
8
|
+
D = undefined> extends AbstractValidator<D extends undefined ? T | undefined : T, I | undefined> {
|
|
8
9
|
validator: Validator<T>;
|
|
9
10
|
defaultValue: T | undefined;
|
|
10
11
|
constructor(validator: Validator<T>);
|
|
@@ -17,5 +18,5 @@ D = undefined> extends AbstractValidator<D extends undefined ? T | undefined : T
|
|
|
17
18
|
*
|
|
18
19
|
* @param validation - A `Validation` to be marked as _optional_.
|
|
19
20
|
*/
|
|
20
|
-
export declare function optional<V extends Validation>(validation: V): OptionalValidator<InferValidation<V>, undefined>;
|
|
21
|
-
export declare function optional<V extends Validation, D>(validation: V, defaultValue: D): OptionalValidator<InferValidation<V>, D>;
|
|
21
|
+
export declare function optional<V extends Validation>(validation: V): OptionalValidator<InferValidation<V>, InferInput<V>, undefined>;
|
|
22
|
+
export declare function optional<V extends Validation, D>(validation: V, defaultValue: D): OptionalValidator<InferValidation<V>, InferInput<V>, D>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/validators/optional.ts"],
|
|
4
|
-
"mappings": ";AAAA,SAAS,mBAAmB,gCAAgC;AAC5D,SAAS,oBAAoB;AAOtB,IAAM,oBAAN,
|
|
4
|
+
"mappings": ";AAAA,SAAS,mBAAmB,gCAAgC;AAC5D,SAAS,oBAAoB;AAOtB,IAAM,oBAAN,cAIG,kBAA0E;AAAA,EAClF;AAAA,EACA;AAAA,EAKA,YAAY,WAAyB,cAAkB;AACrD,UAAM;AACN,SAAK,YAAY;AACjB,SAAK,WAAY,iBAAiB;AAClC,QAAI,KAAK,UAAU;AACjB,WAAK,eAAe;AACpB;AAAA,IACF;AAEA,QAAI;AACF,WAAK,eAAe,UAAU,SAAS,cAAc,wBAAwB;AAAA,IAC/E,SAAS,OAAO;AACd,YAAM,IAAI,UAAU,0CAA0C,EAAE,MAAM,CAAC;AAAA,IACzE;AAAA,EACF;AAAA,EAGA,SAAS,OAAgB,SAA4C;AACnE,QAAI,UAAU;AAAW,aAAO,KAAK;AACrC,WAAO,KAAK,UAAU,SAAS,OAAO,OAAO;AAAA,EAC/C;AACF;AAeO,SAAS,SAEd,YAAe,cAA2E;AAC1F,QAAM,YAAY,aAAa,UAAU;AACzC,SAAO,IAAI,kBAAkB,WAAW,YAAY;AACtD;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/validators/string.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA+C;AAC/C,mBAAwD;AAqBjD,IAAM,qBAAN,cAAiC,+BAA0B;AAAA,EAChE,SAAS,OAAwB;AAC/B,wCAAiB,OAAO,SAAS,UAAU,yBAAyB;AACpE,WAAO;AAAA,EACT;AACF;AAGO,IAAM,kBAAN,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA+C;AAC/C,mBAAwD;AAqBjD,IAAM,qBAAN,cAAiC,+BAA0B;AAAA,EAChE,SAAS,OAAwB;AAC/B,wCAAiB,OAAO,SAAS,UAAU,yBAAyB;AACpE,WAAO;AAAA,EACT;AACF;AAGO,IAAM,kBAAN,cAAqE,+BAAwB;AAAA,EACzF;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAET,YAAY,cAAiC,CAAC,GAAG;AAC/C,UAAM;AAEN,UAAM;AAAA,MACJ,YAAY;AAAA,MACZ,YAAY,OAAO;AAAA,MACnB;AAAA,IACF,IAAI;AAEJ,QAAI,WAAW;AAAa,WAAK,QAAe,YAAa;AAE7D,oCAAa,aAAa,GAAG,2BAA2B,SAAS,wBAAwB;AACzF,oCAAa,aAAa,GAAG,2BAA2B,SAAS,wBAAwB;AACzF,oCAAa,aAAa,WAAW,2BAA2B,SAAS,kCAAkC,SAAS,GAAG;AAEvH,SAAK,YAAY;AACjB,SAAK,YAAY;AACjB,SAAK,UAAU;AAAA,EACjB;AAAA,EAEA,SAAS,OAAmB;AAC1B,wCAAiB,OAAO,SAAS,UAAU,yBAAyB;AAEpE;AAAA,MAAiB,MAAM,UAAU,KAAK;AAAA,MAClC,wCAAwC,KAAK,SAAS;AAAA,IAAE;AAE5D;AAAA,MAAiB,MAAM,UAAU,KAAK;AAAA,MAClC,wCAAwC,KAAK,SAAS;AAAA,IAAE;AAE5D;AAAA,MAAiB,KAAK,UAAU,KAAK,QAAQ,KAAK,KAAK,IAAI;AAAA,MACvD,0CAA0C,KAAK,OAAO;AAAA,IAAE;AAE5D,WAAO;AAAA,EACT;AACF;AAKO,SAAS,cAAc,aAAmD;AAC/E,SAAO,IAAI,gBAAgB,WAAW;AACxC;AAGO,IAAM,aAAS,mCAAqB,IAAI,mBAAmB,GAAG,aAAa;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -19,7 +19,7 @@ export declare class AnyStringValidator extends AbstractValidator<string> {
|
|
|
19
19
|
validate(value: unknown): string;
|
|
20
20
|
}
|
|
21
21
|
/** A `Validator` validating `string`s with constraints. */
|
|
22
|
-
export declare class StringValidator<S extends string = string> extends AbstractValidator<S> {
|
|
22
|
+
export declare class StringValidator<S extends string = string, I = string> extends AbstractValidator<S, I> {
|
|
23
23
|
readonly maxLength: number;
|
|
24
24
|
readonly minLength: number;
|
|
25
25
|
readonly pattern?: RegExp;
|