@sinclair/typebox 0.32.0-dev-20 → 0.32.0-dev-22
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/build/import/compiler/compiler.mjs +62 -62
- package/build/import/errors/errors.mjs +62 -62
- package/build/import/index.d.mts +6 -6
- package/build/import/index.mjs +1 -1
- package/build/import/type/awaited/awaited.d.mts +4 -6
- package/build/import/type/awaited/awaited.mjs +3 -3
- package/build/import/type/composite/composite.d.mts +8 -8
- package/build/import/type/const/const.d.mts +4 -7
- package/build/import/type/constructor/constructor.d.mts +4 -4
- package/build/import/type/deref/deref.d.mts +2 -2
- package/build/import/type/deref/deref.mjs +26 -36
- package/build/import/type/exclude/exclude-from-mapped-result.d.mts +4 -6
- package/build/import/type/exclude/exclude.d.mts +7 -8
- package/build/import/type/extends/extends-from-mapped-key.d.mts +5 -8
- package/build/import/type/extends/extends-from-mapped-key.mjs +3 -3
- package/build/import/type/extends/extends-from-mapped-result.d.mts +4 -6
- package/build/import/type/extends/extends.d.mts +2 -3
- package/build/import/type/extract/extract-from-mapped-result.d.mts +4 -6
- package/build/import/type/extract/extract.d.mts +8 -8
- package/build/import/type/function/function.d.mts +1 -1
- package/build/import/type/helpers/helpers.d.mts +1 -1
- package/build/import/type/index.d.mts +0 -1
- package/build/import/type/index.mjs +0 -1
- package/build/import/type/indexed/indexed-from-mapped-key.d.mts +5 -8
- package/build/import/type/indexed/indexed-from-mapped-key.mjs +3 -6
- package/build/import/type/indexed/indexed-property-keys.d.mts +5 -8
- package/build/import/type/indexed/indexed-property-keys.mjs +6 -11
- package/build/import/type/indexed/indexed.d.mts +13 -23
- package/build/import/type/indexed/indexed.mjs +13 -13
- package/build/import/type/intersect/intersect-create.mjs +0 -1
- package/build/import/type/intersect/intersect-evaluated.d.mts +7 -11
- package/build/import/type/intersect/intersect-evaluated.mjs +12 -7
- package/build/import/type/intersect/intersect-type.d.mts +2 -2
- package/build/import/type/intersect/intersect.mjs +1 -2
- package/build/import/type/intrinsic/intrinsic-from-mapped-key.d.mts +7 -9
- package/build/import/type/intrinsic/intrinsic-from-mapped-key.mjs +3 -3
- package/build/import/type/intrinsic/intrinsic.d.mts +6 -8
- package/build/import/type/intrinsic/intrinsic.mjs +8 -6
- package/build/import/type/keyof/keyof-from-mapped-result.d.mts +4 -6
- package/build/import/type/keyof/keyof-property-keys.d.mts +9 -13
- package/build/import/type/keyof/keyof-property-keys.mjs +12 -9
- package/build/import/type/keyof/keyof.d.mts +7 -8
- package/build/import/type/keyof/keyof.mjs +8 -6
- package/build/import/type/mapped/mapped.d.mts +9 -13
- package/build/import/type/mapped/mapped.mjs +9 -9
- package/build/import/type/omit/omit-from-mapped-key.d.mts +5 -8
- package/build/import/type/omit/omit-from-mapped-key.mjs +3 -3
- package/build/import/type/omit/omit.d.mts +6 -9
- package/build/import/type/omit/omit.mjs +0 -1
- package/build/import/type/operators/operators.d.mts +16 -16
- package/build/import/type/operators/operators.mjs +21 -25
- package/build/import/type/optional/optional-from-mapped-result.d.mts +4 -6
- package/build/import/type/optional/optional.d.mts +3 -7
- package/build/import/type/partial/partial-from-mapped-result.d.mts +4 -6
- package/build/import/type/partial/partial.d.mts +4 -7
- package/build/import/type/partial/partial.mjs +6 -7
- package/build/import/type/pick/pick-from-mapped-key.d.mts +5 -8
- package/build/import/type/pick/pick-from-mapped-key.mjs +3 -3
- package/build/import/type/pick/pick.d.mts +4 -4
- package/build/import/type/readonly/readonly-from-mapped-result.d.mts +4 -6
- package/build/import/type/readonly/readonly.d.mts +3 -7
- package/build/import/type/record/record.d.mts +14 -20
- package/build/import/type/record/record.mjs +2 -4
- package/build/import/type/ref/ref.mjs +3 -0
- package/build/import/type/required/required-from-mapped-result.d.mts +4 -6
- package/build/import/type/required/required.d.mts +5 -9
- package/build/import/type/required/required.mjs +6 -7
- package/build/import/type/rest/rest.d.mts +3 -3
- package/build/import/type/schema/schema.d.mts +1 -1
- package/build/import/type/static/static.d.mts +1 -1
- package/build/import/type/symbol/symbol.d.mts +1 -1
- package/build/import/type/template-literal/finite.d.mts +7 -5
- package/build/import/type/template-literal/finite.mjs +14 -5
- package/build/import/type/template-literal/generate.d.mts +14 -9
- package/build/import/type/template-literal/generate.mjs +19 -9
- package/build/import/type/template-literal/index.d.mts +1 -1
- package/build/import/type/template-literal/index.mjs +1 -1
- package/build/import/type/template-literal/{parser.mjs → parse.mjs} +7 -2
- package/build/import/type/template-literal/syntax.d.mts +3 -3
- package/build/import/type/template-literal/syntax.mjs +2 -3
- package/build/import/type/template-literal/template-literal.d.mts +2 -2
- package/build/import/type/template-literal/template-literal.mjs +1 -1
- package/build/import/type/template-literal/union.d.mts +2 -2
- package/build/import/type/template-literal/union.mjs +5 -10
- package/build/import/type/transform/transform.mjs +0 -1
- package/build/import/type/tuple/tuple.d.mts +1 -2
- package/build/import/type/type/json.d.mts +2 -2
- package/build/import/type/union/union-evaluated.d.mts +6 -10
- package/build/import/type/union/union-evaluated.mjs +7 -2
- package/build/import/value/cast/cast.mjs +20 -20
- package/build/import/value/check/check.mjs +62 -62
- package/build/import/value/clean/clean.mjs +16 -16
- package/build/import/value/convert/convert.mjs +36 -36
- package/build/import/value/create/create.mjs +66 -67
- package/build/import/value/default/default.mjs +16 -16
- package/build/import/value/transform/decode.mjs +18 -18
- package/build/import/value/transform/encode.mjs +18 -18
- package/build/import/value/transform/has.mjs +28 -28
- package/build/require/compiler/compiler.js +62 -62
- package/build/require/errors/errors.js +62 -62
- package/build/require/index.d.ts +6 -6
- package/build/require/index.js +4 -2
- package/build/require/type/awaited/awaited.d.ts +4 -6
- package/build/require/type/awaited/awaited.js +3 -3
- package/build/require/type/composite/composite.d.ts +8 -8
- package/build/require/type/const/const.d.ts +4 -7
- package/build/require/type/constructor/constructor.d.ts +4 -4
- package/build/require/type/deref/deref.d.ts +2 -2
- package/build/require/type/deref/deref.js +25 -35
- package/build/require/type/exclude/exclude-from-mapped-result.d.ts +4 -6
- package/build/require/type/exclude/exclude.d.ts +7 -8
- package/build/require/type/extends/extends-from-mapped-key.d.ts +5 -8
- package/build/require/type/extends/extends-from-mapped-key.js +3 -3
- package/build/require/type/extends/extends-from-mapped-result.d.ts +4 -6
- package/build/require/type/extends/extends.d.ts +2 -3
- package/build/require/type/extract/extract-from-mapped-result.d.ts +4 -6
- package/build/require/type/extract/extract.d.ts +8 -8
- package/build/require/type/function/function.d.ts +1 -1
- package/build/require/type/helpers/helpers.d.ts +1 -1
- package/build/require/type/index.d.ts +0 -1
- package/build/require/type/index.js +0 -1
- package/build/require/type/indexed/indexed-from-mapped-key.d.ts +5 -8
- package/build/require/type/indexed/indexed-from-mapped-key.js +3 -6
- package/build/require/type/indexed/indexed-property-keys.d.ts +5 -8
- package/build/require/type/indexed/indexed-property-keys.js +4 -9
- package/build/require/type/indexed/indexed.d.ts +13 -23
- package/build/require/type/indexed/indexed.js +13 -13
- package/build/require/type/intersect/intersect-create.js +0 -1
- package/build/require/type/intersect/intersect-evaluated.d.ts +7 -11
- package/build/require/type/intersect/intersect-evaluated.js +9 -4
- package/build/require/type/intersect/intersect-type.d.ts +2 -2
- package/build/require/type/intersect/intersect.js +0 -1
- package/build/require/type/intrinsic/intrinsic-from-mapped-key.d.ts +7 -9
- package/build/require/type/intrinsic/intrinsic-from-mapped-key.js +3 -3
- package/build/require/type/intrinsic/intrinsic.d.ts +6 -8
- package/build/require/type/intrinsic/intrinsic.js +7 -5
- package/build/require/type/keyof/keyof-from-mapped-result.d.ts +4 -6
- package/build/require/type/keyof/keyof-property-keys.d.ts +9 -13
- package/build/require/type/keyof/keyof-property-keys.js +12 -9
- package/build/require/type/keyof/keyof.d.ts +7 -8
- package/build/require/type/keyof/keyof.js +8 -6
- package/build/require/type/mapped/mapped.d.ts +9 -13
- package/build/require/type/mapped/mapped.js +9 -9
- package/build/require/type/omit/omit-from-mapped-key.d.ts +5 -8
- package/build/require/type/omit/omit-from-mapped-key.js +3 -3
- package/build/require/type/omit/omit.d.ts +6 -9
- package/build/require/type/omit/omit.js +0 -1
- package/build/require/type/operators/operators.d.ts +16 -16
- package/build/require/type/operators/operators.js +21 -25
- package/build/require/type/optional/optional-from-mapped-result.d.ts +4 -6
- package/build/require/type/optional/optional.d.ts +3 -7
- package/build/require/type/partial/partial-from-mapped-result.d.ts +4 -6
- package/build/require/type/partial/partial.d.ts +4 -7
- package/build/require/type/partial/partial.js +6 -7
- package/build/require/type/pick/pick-from-mapped-key.d.ts +5 -8
- package/build/require/type/pick/pick-from-mapped-key.js +3 -3
- package/build/require/type/pick/pick.d.ts +4 -4
- package/build/require/type/readonly/readonly-from-mapped-result.d.ts +4 -6
- package/build/require/type/readonly/readonly.d.ts +3 -7
- package/build/require/type/record/record.d.ts +14 -20
- package/build/require/type/record/record.js +1 -3
- package/build/require/type/ref/ref.js +3 -0
- package/build/require/type/required/required-from-mapped-result.d.ts +4 -6
- package/build/require/type/required/required.d.ts +5 -9
- package/build/require/type/required/required.js +6 -7
- package/build/require/type/rest/rest.d.ts +3 -3
- package/build/require/type/schema/schema.d.ts +1 -1
- package/build/require/type/static/static.d.ts +1 -1
- package/build/require/type/symbol/symbol.d.ts +1 -1
- package/build/require/type/template-literal/finite.d.ts +7 -5
- package/build/require/type/template-literal/finite.js +16 -6
- package/build/require/type/template-literal/generate.d.ts +14 -9
- package/build/require/type/template-literal/generate.js +22 -11
- package/build/require/type/template-literal/index.d.ts +1 -1
- package/build/require/type/template-literal/index.js +1 -1
- package/build/require/type/template-literal/{parser.js → parse.js} +7 -2
- package/build/require/type/template-literal/syntax.d.ts +3 -3
- package/build/require/type/template-literal/syntax.js +1 -2
- package/build/require/type/template-literal/template-literal.d.ts +2 -2
- package/build/require/type/template-literal/template-literal.js +1 -1
- package/build/require/type/template-literal/union.d.ts +2 -2
- package/build/require/type/template-literal/union.js +5 -10
- package/build/require/type/transform/transform.js +0 -1
- package/build/require/type/tuple/tuple.d.ts +1 -2
- package/build/require/type/type/json.d.ts +2 -2
- package/build/require/type/union/union-evaluated.d.ts +6 -10
- package/build/require/type/union/union-evaluated.js +7 -2
- package/build/require/value/cast/cast.js +20 -20
- package/build/require/value/check/check.js +62 -62
- package/build/require/value/clean/clean.js +16 -16
- package/build/require/value/convert/convert.js +36 -36
- package/build/require/value/create/create.js +65 -66
- package/build/require/value/default/default.js +16 -16
- package/build/require/value/transform/decode.js +18 -18
- package/build/require/value/transform/encode.js +18 -18
- package/build/require/value/transform/has.js +28 -28
- package/package.json +1 -1
- package/readme.md +47 -47
- package/build/import/type/modifiers/index.d.mts +0 -1
- package/build/import/type/modifiers/index.mjs +0 -1
- package/build/import/type/modifiers/modifiers.d.mts +0 -18
- package/build/import/type/modifiers/modifiers.mjs +0 -50
- package/build/require/type/modifiers/index.d.ts +0 -1
- package/build/require/type/modifiers/index.js +0 -18
- package/build/require/type/modifiers/modifiers.d.ts +0 -18
- package/build/require/type/modifiers/modifiers.js +0 -56
- /package/build/import/type/template-literal/{parser.d.mts → parse.d.mts} +0 -0
- /package/build/require/type/template-literal/{parser.d.ts → parse.d.ts} +0 -0
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.TemplateLiteral = void 0;
|
|
5
|
-
const pattern_1 = require("./pattern");
|
|
6
5
|
const syntax_1 = require("./syntax");
|
|
6
|
+
const pattern_1 = require("./pattern");
|
|
7
7
|
const value_1 = require("../guard/value");
|
|
8
8
|
const index_1 = require("../symbols/index");
|
|
9
9
|
/** `[Json]` Creates a TemplateLiteral type */
|
|
@@ -3,5 +3,5 @@ import { type TUnion } from '../union/index';
|
|
|
3
3
|
import { type TLiteral } from '../literal/index';
|
|
4
4
|
import { type TString } from '../string/index';
|
|
5
5
|
import { type TNever } from '../never/index';
|
|
6
|
-
/**
|
|
7
|
-
export declare function TemplateLiteralToUnion(
|
|
6
|
+
/** Returns a Union from the given TemplateLiteral */
|
|
7
|
+
export declare function TemplateLiteralToUnion(schema: TTemplateLiteral): TNever | TString | TUnion<TLiteral[]>;
|
|
@@ -4,19 +4,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.TemplateLiteralToUnion = void 0;
|
|
5
5
|
const index_1 = require("../union/index");
|
|
6
6
|
const index_2 = require("../literal/index");
|
|
7
|
-
const index_3 = require("../string/index");
|
|
8
7
|
const generate_1 = require("./generate");
|
|
9
|
-
const parser_1 = require("./parser");
|
|
10
|
-
const finite_1 = require("./finite");
|
|
11
8
|
// ------------------------------------------------------------------
|
|
12
9
|
// TemplateLiteralToUnion
|
|
13
10
|
// ------------------------------------------------------------------
|
|
14
|
-
/**
|
|
15
|
-
function TemplateLiteralToUnion(
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const literals = [...(0, generate_1.TemplateLiteralGenerate)(expression)].map((value) => (0, index_2.Literal)(value));
|
|
20
|
-
return (0, index_1.Union)(literals);
|
|
11
|
+
/** Returns a Union from the given TemplateLiteral */
|
|
12
|
+
function TemplateLiteralToUnion(schema) {
|
|
13
|
+
const R = (0, generate_1.TemplateLiteralGenerate)(schema);
|
|
14
|
+
const L = R.map((S) => (0, index_2.Literal)(S));
|
|
15
|
+
return (0, index_1.Union)(L);
|
|
21
16
|
}
|
|
22
17
|
exports.TemplateLiteralToUnion = TemplateLiteralToUnion;
|
|
@@ -7,7 +7,6 @@ const index_1 = require("../symbols/index");
|
|
|
7
7
|
// ------------------------------------------------------------------
|
|
8
8
|
// TypeGuard
|
|
9
9
|
// ------------------------------------------------------------------
|
|
10
|
-
// prettier-ignore
|
|
11
10
|
const type_2 = require("../guard/type");
|
|
12
11
|
// ------------------------------------------------------------------
|
|
13
12
|
// TransformBuilders
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import type { TSchema, SchemaOptions } from '../schema/index';
|
|
2
2
|
import type { Static } from '../static/index';
|
|
3
3
|
import { Kind } from '../symbols/index';
|
|
4
|
-
type
|
|
5
|
-
type TupleStatic<T extends TSchema[], P extends unknown[], R extends unknown[] = TupleStaticRest<T, P>> = R;
|
|
4
|
+
type TupleStatic<T extends TSchema[], P extends unknown[], Acc extends unknown[] = []> = T extends [infer L extends TSchema, ...infer R extends TSchema[]] ? TupleStatic<R, P, [...Acc, Static<L, P>]> : Acc;
|
|
6
5
|
export interface TTuple<T extends TSchema[] = TSchema[]> extends TSchema {
|
|
7
6
|
[Kind]: 'Tuple';
|
|
8
7
|
static: TupleStatic<T, this['params']>;
|
|
@@ -34,7 +34,7 @@ import { type TRequired, type TRequiredFromMappedResult } from '../required/inde
|
|
|
34
34
|
import { type TRest } from '../rest/index';
|
|
35
35
|
import { type TSchema, type SchemaOptions } from '../schema/index';
|
|
36
36
|
import { type TString, type StringOptions } from '../string/index';
|
|
37
|
-
import { type TTemplateLiteral, type TTemplateLiteralKind, type
|
|
37
|
+
import { type TTemplateLiteral, type TTemplateLiteralKind, type TTemplateLiteralSyntax } from '../template-literal/index';
|
|
38
38
|
import { TransformDecodeBuilder } from '../transform/index';
|
|
39
39
|
import { type TTuple } from '../tuple/index';
|
|
40
40
|
import { Union } from '../union/index';
|
|
@@ -157,7 +157,7 @@ export declare class JsonTypeBuilder {
|
|
|
157
157
|
/** `[Json]` Creates a String type */
|
|
158
158
|
String(options?: StringOptions): TString;
|
|
159
159
|
/** `[Json]` Creates a TemplateLiteral type from template dsl string */
|
|
160
|
-
TemplateLiteral<T extends string>(syntax: T, options?: SchemaOptions):
|
|
160
|
+
TemplateLiteral<T extends string>(syntax: T, options?: SchemaOptions): TTemplateLiteralSyntax<T>;
|
|
161
161
|
/** `[Json]` Creates a TemplateLiteral type */
|
|
162
162
|
TemplateLiteral<T extends TTemplateLiteralKind[]>(kinds: [...T], options?: SchemaOptions): TTemplateLiteral<T>;
|
|
163
163
|
/** `[Json]` Creates a Transform type */
|
|
@@ -3,15 +3,11 @@ import { type TNever } from '../never/index';
|
|
|
3
3
|
import { type TOptional } from '../optional/index';
|
|
4
4
|
import type { TReadonly } from '../readonly/index';
|
|
5
5
|
import type { TUnion } from './union-type';
|
|
6
|
-
type
|
|
7
|
-
|
|
8
|
-
type
|
|
9
|
-
|
|
10
|
-
type
|
|
11
|
-
declare function RemoveOptionalFromType<T extends TSchema>(T: T): RemoveOptionalFromType<T>;
|
|
12
|
-
type ResolveUnion<T extends TSchema[], R extends TSchema[] = RemoveOptionalFromRest<T>> = (IsUnionOptional<T> extends true ? TOptional<TUnion<R>> : TUnion<R>);
|
|
13
|
-
declare function ResolveUnion<T extends TSchema[]>(T: T, options: SchemaOptions): ResolveUnion<T>;
|
|
14
|
-
export type UnionEvaluated<T extends TSchema[]> = (T extends [] ? TNever : T extends [TSchema] ? T[0] : ResolveUnion<T>);
|
|
6
|
+
type TIsUnionOptional<T extends TSchema[]> = (T extends [infer L extends TSchema, ...infer R extends TSchema[]] ? L extends TOptional<TSchema> ? true : TIsUnionOptional<R> : false);
|
|
7
|
+
type TRemoveOptionalFromRest<T extends TSchema[], Acc extends TSchema[] = []> = (T extends [infer L extends TSchema, ...infer R extends TSchema[]] ? L extends TOptional<infer S extends TSchema> ? TRemoveOptionalFromRest<R, [...Acc, TRemoveOptionalFromType<S>]> : TRemoveOptionalFromRest<R, [...Acc, L]> : Acc);
|
|
8
|
+
type TRemoveOptionalFromType<T extends TSchema> = (T extends TReadonly<infer S extends TSchema> ? TReadonly<TRemoveOptionalFromType<S>> : T extends TOptional<infer S extends TSchema> ? TRemoveOptionalFromType<S> : T);
|
|
9
|
+
type TResolveUnion<T extends TSchema[], R extends TSchema[] = TRemoveOptionalFromRest<T>> = (TIsUnionOptional<T> extends true ? TOptional<TUnion<R>> : TUnion<R>);
|
|
10
|
+
export type TUnionEvaluated<T extends TSchema[]> = (T extends [] ? TNever : T extends [TSchema] ? T[0] : TResolveUnion<T>);
|
|
15
11
|
/** `[Json]` Creates an evaluated Union type */
|
|
16
|
-
export declare function UnionEvaluated<T extends TSchema[], R =
|
|
12
|
+
export declare function UnionEvaluated<T extends TSchema[], R = TUnionEvaluated<T>>(T: [...T], options?: SchemaOptions): R;
|
|
17
13
|
export {};
|
|
@@ -23,8 +23,13 @@ function IsUnionOptional(T) {
|
|
|
23
23
|
: false);
|
|
24
24
|
}
|
|
25
25
|
// prettier-ignore
|
|
26
|
-
function RemoveOptionalFromRest(T) {
|
|
27
|
-
|
|
26
|
+
function RemoveOptionalFromRest(T, Acc = []) {
|
|
27
|
+
const [L, ...R] = T;
|
|
28
|
+
return (T.length > 0
|
|
29
|
+
? (0, type_2.IsOptional)(L)
|
|
30
|
+
? RemoveOptionalFromRest(R, [...Acc, RemoveOptionalFromType(L)])
|
|
31
|
+
: RemoveOptionalFromRest(R, [...Acc, L])
|
|
32
|
+
: Acc);
|
|
28
33
|
}
|
|
29
34
|
// prettier-ignore
|
|
30
35
|
function RemoveOptionalFromType(T) {
|
|
@@ -97,7 +97,7 @@ function Default(schema, references, value) {
|
|
|
97
97
|
// ------------------------------------------------------------------
|
|
98
98
|
// Cast
|
|
99
99
|
// ------------------------------------------------------------------
|
|
100
|
-
function
|
|
100
|
+
function FromArray(schema, references, value) {
|
|
101
101
|
if ((0, index_4.Check)(schema, references, value))
|
|
102
102
|
return (0, index_5.Clone)(value);
|
|
103
103
|
const created = (0, index_1.IsArray)(value) ? (0, index_5.Clone)(value) : (0, index_3.Create)(schema, references);
|
|
@@ -111,7 +111,7 @@ function TArray(schema, references, value) {
|
|
|
111
111
|
throw new ValueCastArrayUniqueItemsTypeError(schema, unique);
|
|
112
112
|
return unique;
|
|
113
113
|
}
|
|
114
|
-
function
|
|
114
|
+
function FromConstructor(schema, references, value) {
|
|
115
115
|
if ((0, index_4.Check)(schema, references, value))
|
|
116
116
|
return (0, index_3.Create)(schema, references);
|
|
117
117
|
const required = new Set(schema.returns.required || []);
|
|
@@ -123,15 +123,15 @@ function TConstructor(schema, references, value) {
|
|
|
123
123
|
}
|
|
124
124
|
return result;
|
|
125
125
|
}
|
|
126
|
-
function
|
|
126
|
+
function FromIntersect(schema, references, value) {
|
|
127
127
|
const created = (0, index_3.Create)(schema, references);
|
|
128
128
|
const mapped = (0, index_1.IsPlainObject)(created) && (0, index_1.IsPlainObject)(value) ? { ...created, ...value } : value;
|
|
129
129
|
return (0, index_4.Check)(schema, references, mapped) ? mapped : (0, index_3.Create)(schema, references);
|
|
130
130
|
}
|
|
131
|
-
function
|
|
131
|
+
function FromNever(schema, references, value) {
|
|
132
132
|
throw new ValueCastNeverTypeError(schema);
|
|
133
133
|
}
|
|
134
|
-
function
|
|
134
|
+
function FromObject(schema, references, value) {
|
|
135
135
|
if ((0, index_4.Check)(schema, references, value))
|
|
136
136
|
return value;
|
|
137
137
|
if (value === null || typeof value !== 'object')
|
|
@@ -154,7 +154,7 @@ function TObject(schema, references, value) {
|
|
|
154
154
|
}
|
|
155
155
|
return result;
|
|
156
156
|
}
|
|
157
|
-
function
|
|
157
|
+
function FromRecord(schema, references, value) {
|
|
158
158
|
if ((0, index_4.Check)(schema, references, value))
|
|
159
159
|
return (0, index_5.Clone)(value);
|
|
160
160
|
if (value === null || typeof value !== 'object' || Array.isArray(value) || value instanceof Date)
|
|
@@ -167,13 +167,13 @@ function TRecord(schema, references, value) {
|
|
|
167
167
|
}
|
|
168
168
|
return result;
|
|
169
169
|
}
|
|
170
|
-
function
|
|
170
|
+
function FromRef(schema, references, value) {
|
|
171
171
|
return Visit((0, index_6.Deref)(schema, references), references, value);
|
|
172
172
|
}
|
|
173
|
-
function
|
|
173
|
+
function FromThis(schema, references, value) {
|
|
174
174
|
return Visit((0, index_6.Deref)(schema, references), references, value);
|
|
175
175
|
}
|
|
176
|
-
function
|
|
176
|
+
function FromTuple(schema, references, value) {
|
|
177
177
|
if ((0, index_4.Check)(schema, references, value))
|
|
178
178
|
return (0, index_5.Clone)(value);
|
|
179
179
|
if (!(0, index_1.IsArray)(value))
|
|
@@ -182,7 +182,7 @@ function TTuple(schema, references, value) {
|
|
|
182
182
|
return [];
|
|
183
183
|
return schema.items.map((schema, index) => Visit(schema, references, value[index]));
|
|
184
184
|
}
|
|
185
|
-
function
|
|
185
|
+
function FromUnion(schema, references, value) {
|
|
186
186
|
return (0, index_4.Check)(schema, references, value) ? (0, index_5.Clone)(value) : CastUnion(schema, references, value);
|
|
187
187
|
}
|
|
188
188
|
function Visit(schema, references, value) {
|
|
@@ -193,25 +193,25 @@ function Visit(schema, references, value) {
|
|
|
193
193
|
// Structural
|
|
194
194
|
// --------------------------------------------------------------
|
|
195
195
|
case 'Array':
|
|
196
|
-
return
|
|
196
|
+
return FromArray(schema_, references_, value);
|
|
197
197
|
case 'Constructor':
|
|
198
|
-
return
|
|
198
|
+
return FromConstructor(schema_, references_, value);
|
|
199
199
|
case 'Intersect':
|
|
200
|
-
return
|
|
200
|
+
return FromIntersect(schema_, references_, value);
|
|
201
201
|
case 'Never':
|
|
202
|
-
return
|
|
202
|
+
return FromNever(schema_, references_, value);
|
|
203
203
|
case 'Object':
|
|
204
|
-
return
|
|
204
|
+
return FromObject(schema_, references_, value);
|
|
205
205
|
case 'Record':
|
|
206
|
-
return
|
|
206
|
+
return FromRecord(schema_, references_, value);
|
|
207
207
|
case 'Ref':
|
|
208
|
-
return
|
|
208
|
+
return FromRef(schema_, references_, value);
|
|
209
209
|
case 'This':
|
|
210
|
-
return
|
|
210
|
+
return FromThis(schema_, references_, value);
|
|
211
211
|
case 'Tuple':
|
|
212
|
-
return
|
|
212
|
+
return FromTuple(schema_, references_, value);
|
|
213
213
|
case 'Union':
|
|
214
|
-
return
|
|
214
|
+
return FromUnion(schema_, references_, value);
|
|
215
215
|
// --------------------------------------------------------------
|
|
216
216
|
// DefaultClone
|
|
217
217
|
// --------------------------------------------------------------
|
|
@@ -44,10 +44,10 @@ function IsDefined(value) {
|
|
|
44
44
|
// ------------------------------------------------------------------
|
|
45
45
|
// Types
|
|
46
46
|
// ------------------------------------------------------------------
|
|
47
|
-
function
|
|
47
|
+
function FromAny(schema, references, value) {
|
|
48
48
|
return true;
|
|
49
49
|
}
|
|
50
|
-
function
|
|
50
|
+
function FromArray(schema, references, value) {
|
|
51
51
|
if (!(0, index_9.IsArray)(value))
|
|
52
52
|
return false;
|
|
53
53
|
if (IsDefined(schema.minItems) && !(value.length >= schema.minItems)) {
|
|
@@ -88,10 +88,10 @@ function TArray(schema, references, value) {
|
|
|
88
88
|
}
|
|
89
89
|
return true;
|
|
90
90
|
}
|
|
91
|
-
function
|
|
91
|
+
function FromAsyncIterator(schema, references, value) {
|
|
92
92
|
return (0, index_9.IsAsyncIterator)(value);
|
|
93
93
|
}
|
|
94
|
-
function
|
|
94
|
+
function FromBigInt(schema, references, value) {
|
|
95
95
|
if (!(0, index_9.IsBigInt)(value))
|
|
96
96
|
return false;
|
|
97
97
|
if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) {
|
|
@@ -111,13 +111,13 @@ function TBigInt(schema, references, value) {
|
|
|
111
111
|
}
|
|
112
112
|
return true;
|
|
113
113
|
}
|
|
114
|
-
function
|
|
114
|
+
function FromBoolean(schema, references, value) {
|
|
115
115
|
return (0, index_9.IsBoolean)(value);
|
|
116
116
|
}
|
|
117
|
-
function
|
|
117
|
+
function FromConstructor(schema, references, value) {
|
|
118
118
|
return Visit(schema.returns, references, value.prototype);
|
|
119
119
|
}
|
|
120
|
-
function
|
|
120
|
+
function FromDate(schema, references, value) {
|
|
121
121
|
if (!(0, index_9.IsDate)(value))
|
|
122
122
|
return false;
|
|
123
123
|
if (IsDefined(schema.exclusiveMaximumTimestamp) && !(value.getTime() < schema.exclusiveMaximumTimestamp)) {
|
|
@@ -137,10 +137,10 @@ function TDate(schema, references, value) {
|
|
|
137
137
|
}
|
|
138
138
|
return true;
|
|
139
139
|
}
|
|
140
|
-
function
|
|
140
|
+
function FromFunction(schema, references, value) {
|
|
141
141
|
return (0, index_9.IsFunction)(value);
|
|
142
142
|
}
|
|
143
|
-
function
|
|
143
|
+
function FromInteger(schema, references, value) {
|
|
144
144
|
if (!(0, index_9.IsInteger)(value)) {
|
|
145
145
|
return false;
|
|
146
146
|
}
|
|
@@ -161,7 +161,7 @@ function TInteger(schema, references, value) {
|
|
|
161
161
|
}
|
|
162
162
|
return true;
|
|
163
163
|
}
|
|
164
|
-
function
|
|
164
|
+
function FromIntersect(schema, references, value) {
|
|
165
165
|
const check1 = schema.allOf.every((schema) => Visit(schema, references, value));
|
|
166
166
|
if (schema.unevaluatedProperties === false) {
|
|
167
167
|
const keyPattern = new RegExp((0, index_5.KeyOfPattern)(schema));
|
|
@@ -177,22 +177,22 @@ function TIntersect(schema, references, value) {
|
|
|
177
177
|
return check1;
|
|
178
178
|
}
|
|
179
179
|
}
|
|
180
|
-
function
|
|
180
|
+
function FromIterator(schema, references, value) {
|
|
181
181
|
return (0, index_9.IsIterator)(value);
|
|
182
182
|
}
|
|
183
|
-
function
|
|
183
|
+
function FromLiteral(schema, references, value) {
|
|
184
184
|
return value === schema.const;
|
|
185
185
|
}
|
|
186
|
-
function
|
|
186
|
+
function FromNever(schema, references, value) {
|
|
187
187
|
return false;
|
|
188
188
|
}
|
|
189
|
-
function
|
|
189
|
+
function FromNot(schema, references, value) {
|
|
190
190
|
return !Visit(schema.not, references, value);
|
|
191
191
|
}
|
|
192
|
-
function
|
|
192
|
+
function FromNull(schema, references, value) {
|
|
193
193
|
return (0, index_9.IsNull)(value);
|
|
194
194
|
}
|
|
195
|
-
function
|
|
195
|
+
function FromNumber(schema, references, value) {
|
|
196
196
|
if (!index_1.TypeSystemPolicy.IsNumberLike(value))
|
|
197
197
|
return false;
|
|
198
198
|
if (IsDefined(schema.exclusiveMaximum) && !(value < schema.exclusiveMaximum)) {
|
|
@@ -212,7 +212,7 @@ function TNumber(schema, references, value) {
|
|
|
212
212
|
}
|
|
213
213
|
return true;
|
|
214
214
|
}
|
|
215
|
-
function
|
|
215
|
+
function FromObject(schema, references, value) {
|
|
216
216
|
if (!index_1.TypeSystemPolicy.IsObjectLike(value))
|
|
217
217
|
return false;
|
|
218
218
|
if (IsDefined(schema.minProperties) && !(Object.getOwnPropertyNames(value).length >= schema.minProperties)) {
|
|
@@ -256,10 +256,10 @@ function TObject(schema, references, value) {
|
|
|
256
256
|
return true;
|
|
257
257
|
}
|
|
258
258
|
}
|
|
259
|
-
function
|
|
259
|
+
function FromPromise(schema, references, value) {
|
|
260
260
|
return (0, index_9.IsPromise)(value);
|
|
261
261
|
}
|
|
262
|
-
function
|
|
262
|
+
function FromRecord(schema, references, value) {
|
|
263
263
|
if (!index_1.TypeSystemPolicy.IsRecordLike(value)) {
|
|
264
264
|
return false;
|
|
265
265
|
}
|
|
@@ -286,10 +286,10 @@ function TRecord(schema, references, value) {
|
|
|
286
286
|
: true;
|
|
287
287
|
return check1 && check2 && check3;
|
|
288
288
|
}
|
|
289
|
-
function
|
|
289
|
+
function FromRef(schema, references, value) {
|
|
290
290
|
return Visit((0, index_2.Deref)(schema, references), references, value);
|
|
291
291
|
}
|
|
292
|
-
function
|
|
292
|
+
function FromString(schema, references, value) {
|
|
293
293
|
if (!(0, index_9.IsString)(value)) {
|
|
294
294
|
return false;
|
|
295
295
|
}
|
|
@@ -314,16 +314,16 @@ function TString(schema, references, value) {
|
|
|
314
314
|
}
|
|
315
315
|
return true;
|
|
316
316
|
}
|
|
317
|
-
function
|
|
317
|
+
function FromSymbol(schema, references, value) {
|
|
318
318
|
return (0, index_9.IsSymbol)(value);
|
|
319
319
|
}
|
|
320
|
-
function
|
|
320
|
+
function FromTemplateLiteral(schema, references, value) {
|
|
321
321
|
return (0, index_9.IsString)(value) && new RegExp(schema.pattern).test(value);
|
|
322
322
|
}
|
|
323
|
-
function
|
|
323
|
+
function FromThis(schema, references, value) {
|
|
324
324
|
return Visit((0, index_2.Deref)(schema, references), references, value);
|
|
325
325
|
}
|
|
326
|
-
function
|
|
326
|
+
function FromTuple(schema, references, value) {
|
|
327
327
|
if (!(0, index_9.IsArray)(value)) {
|
|
328
328
|
return false;
|
|
329
329
|
}
|
|
@@ -342,13 +342,13 @@ function TTuple(schema, references, value) {
|
|
|
342
342
|
}
|
|
343
343
|
return true;
|
|
344
344
|
}
|
|
345
|
-
function
|
|
345
|
+
function FromUndefined(schema, references, value) {
|
|
346
346
|
return (0, index_9.IsUndefined)(value);
|
|
347
347
|
}
|
|
348
|
-
function
|
|
348
|
+
function FromUnion(schema, references, value) {
|
|
349
349
|
return schema.anyOf.some((inner) => Visit(inner, references, value));
|
|
350
350
|
}
|
|
351
|
-
function
|
|
351
|
+
function FromUint8Array(schema, references, value) {
|
|
352
352
|
if (!(0, index_9.IsUint8Array)(value)) {
|
|
353
353
|
return false;
|
|
354
354
|
}
|
|
@@ -360,13 +360,13 @@ function TUint8Array(schema, references, value) {
|
|
|
360
360
|
}
|
|
361
361
|
return true;
|
|
362
362
|
}
|
|
363
|
-
function
|
|
363
|
+
function FromUnknown(schema, references, value) {
|
|
364
364
|
return true;
|
|
365
365
|
}
|
|
366
|
-
function
|
|
366
|
+
function FromVoid(schema, references, value) {
|
|
367
367
|
return index_1.TypeSystemPolicy.IsVoidLike(value);
|
|
368
368
|
}
|
|
369
|
-
function
|
|
369
|
+
function FromKind(schema, references, value) {
|
|
370
370
|
if (!index_7.TypeRegistry.Has(schema[index_4.Kind]))
|
|
371
371
|
return false;
|
|
372
372
|
const func = index_7.TypeRegistry.Get(schema[index_4.Kind]);
|
|
@@ -377,69 +377,69 @@ function Visit(schema, references, value) {
|
|
|
377
377
|
const schema_ = schema;
|
|
378
378
|
switch (schema_[index_4.Kind]) {
|
|
379
379
|
case 'Any':
|
|
380
|
-
return
|
|
380
|
+
return FromAny(schema_, references_, value);
|
|
381
381
|
case 'Array':
|
|
382
|
-
return
|
|
382
|
+
return FromArray(schema_, references_, value);
|
|
383
383
|
case 'AsyncIterator':
|
|
384
|
-
return
|
|
384
|
+
return FromAsyncIterator(schema_, references_, value);
|
|
385
385
|
case 'BigInt':
|
|
386
|
-
return
|
|
386
|
+
return FromBigInt(schema_, references_, value);
|
|
387
387
|
case 'Boolean':
|
|
388
|
-
return
|
|
388
|
+
return FromBoolean(schema_, references_, value);
|
|
389
389
|
case 'Constructor':
|
|
390
|
-
return
|
|
390
|
+
return FromConstructor(schema_, references_, value);
|
|
391
391
|
case 'Date':
|
|
392
|
-
return
|
|
392
|
+
return FromDate(schema_, references_, value);
|
|
393
393
|
case 'Function':
|
|
394
|
-
return
|
|
394
|
+
return FromFunction(schema_, references_, value);
|
|
395
395
|
case 'Integer':
|
|
396
|
-
return
|
|
396
|
+
return FromInteger(schema_, references_, value);
|
|
397
397
|
case 'Intersect':
|
|
398
|
-
return
|
|
398
|
+
return FromIntersect(schema_, references_, value);
|
|
399
399
|
case 'Iterator':
|
|
400
|
-
return
|
|
400
|
+
return FromIterator(schema_, references_, value);
|
|
401
401
|
case 'Literal':
|
|
402
|
-
return
|
|
402
|
+
return FromLiteral(schema_, references_, value);
|
|
403
403
|
case 'Never':
|
|
404
|
-
return
|
|
404
|
+
return FromNever(schema_, references_, value);
|
|
405
405
|
case 'Not':
|
|
406
|
-
return
|
|
406
|
+
return FromNot(schema_, references_, value);
|
|
407
407
|
case 'Null':
|
|
408
|
-
return
|
|
408
|
+
return FromNull(schema_, references_, value);
|
|
409
409
|
case 'Number':
|
|
410
|
-
return
|
|
410
|
+
return FromNumber(schema_, references_, value);
|
|
411
411
|
case 'Object':
|
|
412
|
-
return
|
|
412
|
+
return FromObject(schema_, references_, value);
|
|
413
413
|
case 'Promise':
|
|
414
|
-
return
|
|
414
|
+
return FromPromise(schema_, references_, value);
|
|
415
415
|
case 'Record':
|
|
416
|
-
return
|
|
416
|
+
return FromRecord(schema_, references_, value);
|
|
417
417
|
case 'Ref':
|
|
418
|
-
return
|
|
418
|
+
return FromRef(schema_, references_, value);
|
|
419
419
|
case 'String':
|
|
420
|
-
return
|
|
420
|
+
return FromString(schema_, references_, value);
|
|
421
421
|
case 'Symbol':
|
|
422
|
-
return
|
|
422
|
+
return FromSymbol(schema_, references_, value);
|
|
423
423
|
case 'TemplateLiteral':
|
|
424
|
-
return
|
|
424
|
+
return FromTemplateLiteral(schema_, references_, value);
|
|
425
425
|
case 'This':
|
|
426
|
-
return
|
|
426
|
+
return FromThis(schema_, references_, value);
|
|
427
427
|
case 'Tuple':
|
|
428
|
-
return
|
|
428
|
+
return FromTuple(schema_, references_, value);
|
|
429
429
|
case 'Undefined':
|
|
430
|
-
return
|
|
430
|
+
return FromUndefined(schema_, references_, value);
|
|
431
431
|
case 'Union':
|
|
432
|
-
return
|
|
432
|
+
return FromUnion(schema_, references_, value);
|
|
433
433
|
case 'Uint8Array':
|
|
434
|
-
return
|
|
434
|
+
return FromUint8Array(schema_, references_, value);
|
|
435
435
|
case 'Unknown':
|
|
436
|
-
return
|
|
436
|
+
return FromUnknown(schema_, references_, value);
|
|
437
437
|
case 'Void':
|
|
438
|
-
return
|
|
438
|
+
return FromVoid(schema_, references_, value);
|
|
439
439
|
default:
|
|
440
440
|
if (!index_7.TypeRegistry.Has(schema_[index_4.Kind]))
|
|
441
441
|
throw new ValueCheckUnknownTypeError(schema_);
|
|
442
|
-
return
|
|
442
|
+
return FromKind(schema_, references_, value);
|
|
443
443
|
}
|
|
444
444
|
}
|
|
445
445
|
/** Returns true if the value matches the given type. */
|
|
@@ -26,12 +26,12 @@ function IsCheckable(schema) {
|
|
|
26
26
|
// ------------------------------------------------------------------
|
|
27
27
|
// Types
|
|
28
28
|
// ------------------------------------------------------------------
|
|
29
|
-
function
|
|
29
|
+
function FromArray(schema, references, value) {
|
|
30
30
|
if (!(0, index_6.IsArray)(value))
|
|
31
31
|
return value;
|
|
32
32
|
return value.map((value) => Visit(schema.items, references, value));
|
|
33
33
|
}
|
|
34
|
-
function
|
|
34
|
+
function FromIntersect(schema, references, value) {
|
|
35
35
|
const unevaluatedProperties = schema.unevaluatedProperties;
|
|
36
36
|
const intersections = schema.allOf.map((schema) => Visit(schema, references, (0, index_3.Clone)(value)));
|
|
37
37
|
const composite = intersections.reduce((acc, value) => ((0, index_6.IsObject)(value) ? { ...acc, ...value } : value), {});
|
|
@@ -47,7 +47,7 @@ function TIntersect(schema, references, value) {
|
|
|
47
47
|
}
|
|
48
48
|
return composite;
|
|
49
49
|
}
|
|
50
|
-
function
|
|
50
|
+
function FromObject(schema, references, value) {
|
|
51
51
|
if (!(0, index_6.IsObject)(value) || (0, index_6.IsArray)(value))
|
|
52
52
|
return value; // Check IsArray for AllowArrayObject configuration
|
|
53
53
|
const additionalProperties = schema.additionalProperties;
|
|
@@ -64,7 +64,7 @@ function TObject(schema, references, value) {
|
|
|
64
64
|
}
|
|
65
65
|
return value;
|
|
66
66
|
}
|
|
67
|
-
function
|
|
67
|
+
function FromRecord(schema, references, value) {
|
|
68
68
|
if (!(0, index_6.IsObject)(value))
|
|
69
69
|
return value;
|
|
70
70
|
const additionalProperties = schema.additionalProperties;
|
|
@@ -84,13 +84,13 @@ function TRecord(schema, references, value) {
|
|
|
84
84
|
}
|
|
85
85
|
return value;
|
|
86
86
|
}
|
|
87
|
-
function
|
|
87
|
+
function FromRef(schema, references, value) {
|
|
88
88
|
return Visit((0, index_4.Deref)(schema, references), references, value);
|
|
89
89
|
}
|
|
90
|
-
function
|
|
90
|
+
function FromThis(schema, references, value) {
|
|
91
91
|
return Visit((0, index_4.Deref)(schema, references), references, value);
|
|
92
92
|
}
|
|
93
|
-
function
|
|
93
|
+
function FromTuple(schema, references, value) {
|
|
94
94
|
if (!(0, index_6.IsArray)(value))
|
|
95
95
|
return value;
|
|
96
96
|
if ((0, index_6.IsUndefined)(schema.items))
|
|
@@ -104,7 +104,7 @@ function TTuple(schema, references, value) {
|
|
|
104
104
|
? value.slice(0, length)
|
|
105
105
|
: value;
|
|
106
106
|
}
|
|
107
|
-
function
|
|
107
|
+
function FromUnion(schema, references, value) {
|
|
108
108
|
for (const inner of schema.anyOf) {
|
|
109
109
|
if (IsCheckable(inner) && (0, index_2.Check)(inner, value)) {
|
|
110
110
|
return Visit(inner, references, value);
|
|
@@ -117,21 +117,21 @@ function Visit(schema, references, value) {
|
|
|
117
117
|
const schema_ = schema;
|
|
118
118
|
switch (schema_[index_5.Kind]) {
|
|
119
119
|
case 'Array':
|
|
120
|
-
return
|
|
120
|
+
return FromArray(schema_, references_, value);
|
|
121
121
|
case 'Intersect':
|
|
122
|
-
return
|
|
122
|
+
return FromIntersect(schema_, references_, value);
|
|
123
123
|
case 'Object':
|
|
124
|
-
return
|
|
124
|
+
return FromObject(schema_, references_, value);
|
|
125
125
|
case 'Record':
|
|
126
|
-
return
|
|
126
|
+
return FromRecord(schema_, references_, value);
|
|
127
127
|
case 'Ref':
|
|
128
|
-
return
|
|
128
|
+
return FromRef(schema_, references_, value);
|
|
129
129
|
case 'This':
|
|
130
|
-
return
|
|
130
|
+
return FromThis(schema_, references_, value);
|
|
131
131
|
case 'Tuple':
|
|
132
|
-
return
|
|
132
|
+
return FromTuple(schema_, references_, value);
|
|
133
133
|
case 'Union':
|
|
134
|
-
return
|
|
134
|
+
return FromUnion(schema_, references_, value);
|
|
135
135
|
default:
|
|
136
136
|
return value;
|
|
137
137
|
}
|