justus 0.4.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/errors.cjs +3 -3
- package/dist/errors.cjs.map +1 -1
- package/dist/errors.mjs +3 -3
- package/dist/errors.mjs.map +1 -1
- package/dist/extra/arn.cjs +98 -0
- package/dist/extra/arn.cjs.map +6 -0
- package/dist/extra/arn.d.ts +71 -0
- package/dist/extra/arn.mjs +68 -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 +10 -10
- package/dist/extra/url.cjs.map +6 -0
- package/dist/{validators → extra}/url.d.ts +4 -5
- package/dist/{validators → extra}/url.mjs +8 -9
- 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 +18 -19
- package/dist/index.mjs +12 -15
- 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 +4 -2
- package/dist/validators/array.cjs.map +1 -1
- package/dist/validators/array.d.ts +3 -4
- package/dist/validators/array.mjs +3 -2
- package/dist/validators/array.mjs.map +1 -1
- package/dist/validators/boolean.cjs +6 -4
- package/dist/validators/boolean.cjs.map +1 -1
- package/dist/validators/boolean.d.ts +2 -3
- package/dist/validators/boolean.mjs +4 -3
- package/dist/validators/boolean.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 +8 -10
- package/dist/validators/date.cjs.map +1 -1
- package/dist/validators/date.d.ts +3 -4
- package/dist/validators/date.mjs +6 -9
- package/dist/validators/date.mjs.map +1 -1
- package/dist/validators/number.cjs +6 -4
- package/dist/validators/number.cjs.map +1 -1
- package/dist/validators/number.d.ts +5 -6
- package/dist/validators/number.mjs +4 -3
- package/dist/validators/number.mjs.map +1 -1
- package/dist/validators/object.cjs +7 -4
- package/dist/validators/object.cjs.map +1 -1
- package/dist/validators/object.d.ts +6 -7
- package/dist/validators/object.mjs +7 -9
- 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 +6 -4
- package/dist/validators/string.cjs.map +1 -1
- package/dist/validators/string.d.ts +5 -6
- package/dist/validators/string.mjs +4 -3
- 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 +46 -6
- package/src/dts-generator.ts +17 -27
- package/src/extra/arn.ts +151 -0
- package/src/extra/ean13.ts +31 -0
- package/src/{validators → extra}/url.ts +6 -8
- package/src/extra/uuid.ts +18 -0
- package/src/index.ts +18 -19
- 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 +3 -3
- package/src/validators/boolean.ts +2 -2
- package/src/validators/constant.ts +3 -2
- package/src/validators/date.ts +9 -9
- package/src/validators/number.ts +6 -7
- package/src/validators/object.ts +15 -14
- package/src/validators/optional.ts +9 -7
- package/src/validators/string.ts +6 -6
- package/src/validators/tuple.ts +20 -6
- package/src/validators/union.ts +35 -10
- package/dist/validators/url.cjs.map +0 -6
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ConstantValidator } from './validators/constant';
|
|
2
|
+
import type { ObjectValidator } from './validators/object';
|
|
3
|
+
import type { TupleValidator } from './validators/tuple';
|
|
4
|
+
type RegistryTypes = {
|
|
5
|
+
constant: typeof ConstantValidator;
|
|
6
|
+
object: typeof ObjectValidator;
|
|
7
|
+
tuple: typeof TupleValidator;
|
|
8
|
+
};
|
|
9
|
+
/** Internal registry for validator constructors (avoids circular imports) */
|
|
10
|
+
export declare const registry: {
|
|
11
|
+
/** Registers the specified validator constructor */
|
|
12
|
+
set<K extends keyof RegistryTypes>(key: K, constructor: RegistryTypes[K]): void;
|
|
13
|
+
/** Retrieves the specified validator constructor */
|
|
14
|
+
get<K_1 extends keyof RegistryTypes>(key: K_1): RegistryTypes[K_1];
|
|
15
|
+
};
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// registry.ts
|
|
2
|
+
import { assertSchema } from "./errors.mjs";
|
|
3
|
+
var _registry = {};
|
|
4
|
+
var registry = {
|
|
5
|
+
/** Registers the specified validator constructor */
|
|
6
|
+
set(key, constructor) {
|
|
7
|
+
_registry[key] = constructor;
|
|
8
|
+
},
|
|
9
|
+
/** Retrieves the specified validator constructor */
|
|
10
|
+
get(key) {
|
|
11
|
+
const value = _registry[key];
|
|
12
|
+
assertSchema(!!value, `No validator found for "${key}"`);
|
|
13
|
+
return value;
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
export {
|
|
17
|
+
registry
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=registry.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/registry.ts"],
|
|
4
|
+
"mappings": ";AAAA,SAAS,oBAAoB;AAY7B,IAAM,YAAoC,CAAC;AAGpC,IAAM,WAAW;AAAA;AAAA,EAEtB,IAAmC,KAAQ,aAAqC;AAC9E,cAAU,GAAG,IAAI;AAAA,EACnB;AAAA;AAAA,EAGA,IAAmC,KAA0B;AAC3D,UAAM,QAAQ,UAAU,GAAG;AAC3B,iBAAa,CAAC,CAAE,OAAO,2BAA2B,GAAG,GAAG;AACxD,WAAO;AAAA,EACT;AACF;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
package/dist/schema.cjs
CHANGED
|
@@ -20,24 +20,22 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// schema.ts
|
|
21
21
|
var schema_exports = {};
|
|
22
22
|
__export(schema_exports, {
|
|
23
|
-
_allowAdditionalProperties: () => _allowAdditionalProperties,
|
|
24
23
|
allowAdditionalProperties: () => allowAdditionalProperties
|
|
25
24
|
});
|
|
26
25
|
module.exports = __toCommonJS(schema_exports);
|
|
27
26
|
var import_utilities = require("./utilities.cjs");
|
|
28
27
|
var import_any = require("./validators/any.cjs");
|
|
29
|
-
function
|
|
28
|
+
function additionalProperties(options) {
|
|
30
29
|
if (options === false)
|
|
31
30
|
return { [Symbol.justusAdditionalValidator]: false };
|
|
32
31
|
if (options === true)
|
|
33
32
|
return { [Symbol.justusAdditionalValidator]: import_any.any };
|
|
34
33
|
return { [Symbol.justusAdditionalValidator]: options ? (0, import_utilities.getValidator)(options) : import_any.any };
|
|
35
34
|
}
|
|
36
|
-
var allowAdditionalProperties =
|
|
37
|
-
|
|
35
|
+
var allowAdditionalProperties = additionalProperties;
|
|
36
|
+
additionalProperties[Symbol.justusAdditionalValidator] = import_any.any;
|
|
38
37
|
// Annotate the CommonJS export names for ESM import in node:
|
|
39
38
|
0 && (module.exports = {
|
|
40
|
-
_allowAdditionalProperties,
|
|
41
39
|
allowAdditionalProperties
|
|
42
40
|
});
|
|
43
41
|
//# sourceMappingURL=schema.cjs.map
|
package/dist/schema.cjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/schema.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAA6B;AAC7B,iBAAoB;AAmBpB,SAAS,qBAAqB,SAAyE;AACrG,MAAI,YAAY;AAAO,WAAO,EAAE,CAAC,OAAO,yBAAyB,GAAG,MAAM;AAC1E,MAAI,YAAY;AAAM,WAAO,EAAE,CAAC,OAAO,yBAAyB,GAAG,eAAI;AAEvE,SAAO,EAAE,CAAC,OAAO,yBAAyB,GAAG,cAAU,+BAAa,OAAO,IAAI,eAAI;AACrF;AAWO,IAAM,4BAA4B;AAKzC,qBAAqB,OAAO,yBAAyB,IAAI;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/schema.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { AdditionalProperties, InferValidation, Validation, Validator } from './types';
|
|
2
2
|
/** Internal definition of `allowAdditionalProperties(...)` */
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
declare function additionalProperties(): AdditionalProperties<Validator<any>>;
|
|
4
|
+
declare function additionalProperties(allow: true): AdditionalProperties<Validator<any>>;
|
|
5
|
+
declare function additionalProperties(allow: false): AdditionalProperties<false>;
|
|
6
|
+
declare function additionalProperties<V extends Validation>(validation: V): AdditionalProperties<Validator<InferValidation<V>>>;
|
|
7
7
|
/**
|
|
8
8
|
* Allow additional properties in `Schema`s.
|
|
9
9
|
*
|
|
@@ -13,4 +13,5 @@ export declare function _allowAdditionalProperties<V extends Validation>(validat
|
|
|
13
13
|
*
|
|
14
14
|
* @param allow - A `boolean` or a `Validator` instance
|
|
15
15
|
*/
|
|
16
|
-
export declare const allowAdditionalProperties: typeof
|
|
16
|
+
export declare const allowAdditionalProperties: typeof additionalProperties & AdditionalProperties<Validator<any, any>>;
|
|
17
|
+
export {};
|
package/dist/schema.mjs
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
// schema.ts
|
|
2
2
|
import { getValidator } from "./utilities.mjs";
|
|
3
3
|
import { any } from "./validators/any.mjs";
|
|
4
|
-
function
|
|
4
|
+
function additionalProperties(options) {
|
|
5
5
|
if (options === false)
|
|
6
6
|
return { [Symbol.justusAdditionalValidator]: false };
|
|
7
7
|
if (options === true)
|
|
8
8
|
return { [Symbol.justusAdditionalValidator]: any };
|
|
9
9
|
return { [Symbol.justusAdditionalValidator]: options ? getValidator(options) : any };
|
|
10
10
|
}
|
|
11
|
-
var allowAdditionalProperties =
|
|
12
|
-
|
|
11
|
+
var allowAdditionalProperties = additionalProperties;
|
|
12
|
+
additionalProperties[Symbol.justusAdditionalValidator] = any;
|
|
13
13
|
export {
|
|
14
|
-
_allowAdditionalProperties,
|
|
15
14
|
allowAdditionalProperties
|
|
16
15
|
};
|
|
17
16
|
//# sourceMappingURL=schema.mjs.map
|
package/dist/schema.mjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/schema.ts"],
|
|
4
|
-
"mappings": ";
|
|
4
|
+
"mappings": ";AAAA,SAAS,oBAAoB;AAC7B,SAAS,WAAW;AAmBpB,SAAS,qBAAqB,SAAyE;AACrG,MAAI,YAAY;AAAO,WAAO,EAAE,CAAC,OAAO,yBAAyB,GAAG,MAAM;AAC1E,MAAI,YAAY;AAAM,WAAO,EAAE,CAAC,OAAO,yBAAyB,GAAG,IAAI;AAEvE,SAAO,EAAE,CAAC,OAAO,yBAAyB,GAAG,UAAU,aAAa,OAAO,IAAI,IAAI;AACrF;AAWO,IAAM,4BAA4B;AAKzC,qBAAqB,OAAO,yBAAyB,IAAI;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/types.cjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/types.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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/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
|
}
|
|
@@ -23,6 +23,7 @@ __export(array_exports, {
|
|
|
23
23
|
AnyArrayValidator: () => AnyArrayValidator,
|
|
24
24
|
ArrayValidator: () => ArrayValidator,
|
|
25
25
|
array: () => array,
|
|
26
|
+
arrayFactory: () => arrayFactory,
|
|
26
27
|
arrayOf: () => arrayOf
|
|
27
28
|
});
|
|
28
29
|
module.exports = __toCommonJS(array_exports);
|
|
@@ -86,11 +87,11 @@ var ArrayValidator = class extends import_types.AbstractValidator {
|
|
|
86
87
|
return builder.assert(clone);
|
|
87
88
|
}
|
|
88
89
|
};
|
|
89
|
-
function
|
|
90
|
+
function arrayFactory(constraints) {
|
|
90
91
|
const items = constraints.items ? (0, import_utilities.getValidator)(constraints.items) : import_any.any;
|
|
91
92
|
return new ArrayValidator({ ...constraints, items });
|
|
92
93
|
}
|
|
93
|
-
var array = (0, import_types.makeValidatorFactory)(new AnyArrayValidator(),
|
|
94
|
+
var array = (0, import_types.makeValidatorFactory)(new AnyArrayValidator(), arrayFactory);
|
|
94
95
|
function arrayOf(validation) {
|
|
95
96
|
return new ArrayValidator({ items: (0, import_utilities.getValidator)(validation) });
|
|
96
97
|
}
|
|
@@ -99,6 +100,7 @@ function arrayOf(validation) {
|
|
|
99
100
|
AnyArrayValidator,
|
|
100
101
|
ArrayValidator,
|
|
101
102
|
array,
|
|
103
|
+
arrayFactory,
|
|
102
104
|
arrayOf
|
|
103
105
|
});
|
|
104
106
|
//# sourceMappingURL=array.cjs.map
|
|
@@ -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,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. */
|
|
@@ -24,9 +24,8 @@ export declare class ArrayValidator<T> extends AbstractValidator<T[]> {
|
|
|
24
24
|
constructor(options?: ArrayConstraints<Validator<T>>);
|
|
25
25
|
validate(value: unknown, options?: ValidationOptions): T[];
|
|
26
26
|
}
|
|
27
|
-
declare function
|
|
27
|
+
export declare function arrayFactory<V extends Validation>(constraints: ArrayConstraints<V>): ArrayValidator<InferValidation<V>>;
|
|
28
28
|
/** Validate `Array`s. */
|
|
29
|
-
export declare const array: typeof
|
|
29
|
+
export declare const array: typeof arrayFactory & AnyArrayValidator<any>;
|
|
30
30
|
/** Validate `Array`s containing only the specified elements. */
|
|
31
31
|
export declare function arrayOf<V extends Validation>(validation: V): Validator<InferValidation<V>[]>;
|
|
32
|
-
export {};
|
|
@@ -59,11 +59,11 @@ var ArrayValidator = class extends AbstractValidator {
|
|
|
59
59
|
return builder.assert(clone);
|
|
60
60
|
}
|
|
61
61
|
};
|
|
62
|
-
function
|
|
62
|
+
function arrayFactory(constraints) {
|
|
63
63
|
const items = constraints.items ? getValidator(constraints.items) : any;
|
|
64
64
|
return new ArrayValidator({ ...constraints, items });
|
|
65
65
|
}
|
|
66
|
-
var array = makeValidatorFactory(new AnyArrayValidator(),
|
|
66
|
+
var array = makeValidatorFactory(new AnyArrayValidator(), arrayFactory);
|
|
67
67
|
function arrayOf(validation) {
|
|
68
68
|
return new ArrayValidator({ items: getValidator(validation) });
|
|
69
69
|
}
|
|
@@ -71,6 +71,7 @@ export {
|
|
|
71
71
|
AnyArrayValidator,
|
|
72
72
|
ArrayValidator,
|
|
73
73
|
array,
|
|
74
|
+
arrayFactory,
|
|
74
75
|
arrayOf
|
|
75
76
|
};
|
|
76
77
|
//# sourceMappingURL=array.mjs.map
|
|
@@ -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,7 +21,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
21
21
|
var boolean_exports = {};
|
|
22
22
|
__export(boolean_exports, {
|
|
23
23
|
BooleanValidator: () => BooleanValidator,
|
|
24
|
-
boolean: () => boolean
|
|
24
|
+
boolean: () => boolean,
|
|
25
|
+
booleanFactory: () => booleanFactory
|
|
25
26
|
});
|
|
26
27
|
module.exports = __toCommonJS(boolean_exports);
|
|
27
28
|
var import_errors = require("../errors.cjs");
|
|
@@ -44,13 +45,14 @@ var BooleanValidator = class extends import_types.AbstractValidator {
|
|
|
44
45
|
return value;
|
|
45
46
|
}
|
|
46
47
|
};
|
|
47
|
-
function
|
|
48
|
+
function booleanFactory(constraints) {
|
|
48
49
|
return new BooleanValidator(constraints);
|
|
49
50
|
}
|
|
50
|
-
var boolean = (0, import_types.makeValidatorFactory)(new BooleanValidator(),
|
|
51
|
+
var boolean = (0, import_types.makeValidatorFactory)(new BooleanValidator(), booleanFactory);
|
|
51
52
|
// Annotate the CommonJS export names for ESM import in node:
|
|
52
53
|
0 && (module.exports = {
|
|
53
54
|
BooleanValidator,
|
|
54
|
-
boolean
|
|
55
|
+
boolean,
|
|
56
|
+
booleanFactory
|
|
55
57
|
});
|
|
56
58
|
//# sourceMappingURL=boolean.cjs.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/validators/boolean.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAiC;AACjC,mBAAwD;AAejD,IAAM,mBAAN,cAA+B,+BAA2B;AAAA,EACtD;AAAA,EAET,YAAY,cAAkC,CAAC,GAAG;AAChD,UAAM;AACN,UAAM,EAAE,aAAa,MAAM,IAAI;AAC/B,SAAK,aAAa;AAAA,EACpB;AAAA,EAEA,SAAS,OAAyB;AAEhC,QAAK,OAAO,SAAS,YAAc,KAAK,YAAa;AACnD,YAAM,SAAS,MAAM,YAAY;AACjC,YAAM,SAAS,WAAW,SAAS,OAAO,WAAW,UAAU,QAAQ;AACvE,0CAAiB,WAAW,QAAW,uCAAuC;AAC9E,cAAQ;AAAA,IACV;AAEA,wCAAiB,OAAO,UAAU,WAAW,0BAA0B;AACvE,WAAO;AAAA,EACT;AACF;
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAiC;AACjC,mBAAwD;AAejD,IAAM,mBAAN,cAA+B,+BAA2B;AAAA,EACtD;AAAA,EAET,YAAY,cAAkC,CAAC,GAAG;AAChD,UAAM;AACN,UAAM,EAAE,aAAa,MAAM,IAAI;AAC/B,SAAK,aAAa;AAAA,EACpB;AAAA,EAEA,SAAS,OAAyB;AAEhC,QAAK,OAAO,SAAS,YAAc,KAAK,YAAa;AACnD,YAAM,SAAS,MAAM,YAAY;AACjC,YAAM,SAAS,WAAW,SAAS,OAAO,WAAW,UAAU,QAAQ;AACvE,0CAAiB,WAAW,QAAW,uCAAuC;AAC9E,cAAQ;AAAA,IACV;AAEA,wCAAiB,OAAO,UAAU,WAAW,0BAA0B;AACvE,WAAO;AAAA,EACT;AACF;AAEO,SAAS,eAAe,aAAmD;AAChF,SAAO,IAAI,iBAAiB,WAAW;AACzC;AAGO,IAAM,cAAU,mCAAqB,IAAI,iBAAiB,GAAG,cAAc;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -15,7 +15,6 @@ export declare class BooleanValidator extends AbstractValidator<boolean> {
|
|
|
15
15
|
constructor(constraints?: BooleanConstraints);
|
|
16
16
|
validate(value: unknown): boolean;
|
|
17
17
|
}
|
|
18
|
-
declare function
|
|
18
|
+
export declare function booleanFactory(constraints: BooleanConstraints): BooleanValidator;
|
|
19
19
|
/** The `Validator` for `boolean`s. */
|
|
20
|
-
export declare const boolean: typeof
|
|
21
|
-
export {};
|
|
20
|
+
export declare const boolean: typeof booleanFactory & BooleanValidator;
|
|
@@ -19,12 +19,13 @@ var BooleanValidator = class extends AbstractValidator {
|
|
|
19
19
|
return value;
|
|
20
20
|
}
|
|
21
21
|
};
|
|
22
|
-
function
|
|
22
|
+
function booleanFactory(constraints) {
|
|
23
23
|
return new BooleanValidator(constraints);
|
|
24
24
|
}
|
|
25
|
-
var boolean = makeValidatorFactory(new BooleanValidator(),
|
|
25
|
+
var boolean = makeValidatorFactory(new BooleanValidator(), booleanFactory);
|
|
26
26
|
export {
|
|
27
27
|
BooleanValidator,
|
|
28
|
-
boolean
|
|
28
|
+
boolean,
|
|
29
|
+
booleanFactory
|
|
29
30
|
};
|
|
30
31
|
//# sourceMappingURL=boolean.mjs.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/validators/boolean.ts"],
|
|
4
|
-
"mappings": ";AAAA,SAAS,wBAAwB;AACjC,SAAS,mBAAmB,4BAA4B;AAejD,IAAM,mBAAN,cAA+B,kBAA2B;AAAA,EACtD;AAAA,EAET,YAAY,cAAkC,CAAC,GAAG;AAChD,UAAM;AACN,UAAM,EAAE,aAAa,MAAM,IAAI;AAC/B,SAAK,aAAa;AAAA,EACpB;AAAA,EAEA,SAAS,OAAyB;AAEhC,QAAK,OAAO,SAAS,YAAc,KAAK,YAAa;AACnD,YAAM,SAAS,MAAM,YAAY;AACjC,YAAM,SAAS,WAAW,SAAS,OAAO,WAAW,UAAU,QAAQ;AACvE,uBAAiB,WAAW,QAAW,uCAAuC;AAC9E,cAAQ;AAAA,IACV;AAEA,qBAAiB,OAAO,UAAU,WAAW,0BAA0B;AACvE,WAAO;AAAA,EACT;AACF;
|
|
4
|
+
"mappings": ";AAAA,SAAS,wBAAwB;AACjC,SAAS,mBAAmB,4BAA4B;AAejD,IAAM,mBAAN,cAA+B,kBAA2B;AAAA,EACtD;AAAA,EAET,YAAY,cAAkC,CAAC,GAAG;AAChD,UAAM;AACN,UAAM,EAAE,aAAa,MAAM,IAAI;AAC/B,SAAK,aAAa;AAAA,EACpB;AAAA,EAEA,SAAS,OAAyB;AAEhC,QAAK,OAAO,SAAS,YAAc,KAAK,YAAa;AACnD,YAAM,SAAS,MAAM,YAAY;AACjC,YAAM,SAAS,WAAW,SAAS,OAAO,WAAW,UAAU,QAAQ;AACvE,uBAAiB,WAAW,QAAW,uCAAuC;AAC9E,cAAQ;AAAA,IACV;AAEA,qBAAiB,OAAO,UAAU,WAAW,0BAA0B;AACvE,WAAO;AAAA,EACT;AACF;AAEO,SAAS,eAAe,aAAmD;AAChF,SAAO,IAAI,iBAAiB,WAAW;AACzC;AAGO,IAAM,UAAU,qBAAqB,IAAI,iBAAiB,GAAG,cAAc;",
|
|
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,
|
|
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
|
}
|