@sinclair/typebox 0.33.22 → 0.34.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/build/cjs/compiler/compiler.d.ts +2 -2
- package/build/cjs/compiler/compiler.js +13 -2
- package/build/cjs/errors/errors.js +7 -0
- package/build/cjs/index.d.ts +1 -2
- package/build/cjs/index.js +1 -2
- package/build/cjs/syntax/parse.d.ts +14 -15
- package/build/cjs/syntax/parse.js +6 -5
- package/build/cjs/syntax/runtime.d.ts +20 -4
- package/build/cjs/syntax/runtime.js +183 -28
- package/build/cjs/syntax/static.d.ts +107 -23
- package/build/cjs/type/array/array.d.ts +1 -1
- package/build/cjs/type/awaited/awaited.d.ts +8 -3
- package/build/cjs/type/awaited/awaited.js +20 -20
- package/build/cjs/type/computed/computed.d.ts +9 -0
- package/build/cjs/type/computed/computed.js +10 -0
- package/build/cjs/type/computed/index.d.ts +1 -0
- package/build/cjs/type/{deref → computed}/index.js +1 -1
- package/build/cjs/type/guard/kind.d.ts +12 -4
- package/build/cjs/type/guard/kind.js +15 -0
- package/build/cjs/type/guard/type.d.ts +9 -3
- package/build/cjs/type/guard/type.js +19 -0
- package/build/cjs/type/index.d.ts +1 -2
- package/build/cjs/type/index.js +1 -2
- package/build/cjs/type/indexed/indexed-from-mapped-key.d.ts +6 -6
- package/build/cjs/type/indexed/indexed-from-mapped-key.js +10 -10
- package/build/cjs/type/indexed/indexed-from-mapped-result.d.ts +5 -5
- package/build/cjs/type/indexed/indexed-from-mapped-result.js +11 -10
- package/build/cjs/type/indexed/indexed-property-keys.d.ts +6 -6
- package/build/cjs/type/indexed/indexed-property-keys.js +14 -14
- package/build/cjs/type/indexed/indexed.d.ts +34 -20
- package/build/cjs/type/indexed/indexed.js +59 -46
- package/build/cjs/type/intersect/intersect-evaluated.d.ts +6 -6
- package/build/cjs/type/intersect/intersect-evaluated.js +16 -16
- package/build/cjs/type/intersect/intersect.d.ts +2 -2
- package/build/cjs/type/intersect/intersect.js +6 -6
- package/build/cjs/type/keyof/keyof-from-mapped-result.d.ts +6 -6
- package/build/cjs/type/keyof/keyof-from-mapped-result.js +10 -10
- package/build/cjs/type/keyof/keyof-property-keys.d.ts +7 -7
- package/build/cjs/type/keyof/keyof-property-keys.js +22 -22
- package/build/cjs/type/keyof/keyof.d.ts +11 -6
- package/build/cjs/type/keyof/keyof.js +22 -13
- package/build/cjs/type/module/compute.d.ts +54 -0
- package/build/cjs/type/module/compute.js +154 -0
- package/build/cjs/type/module/index.d.ts +1 -0
- package/build/cjs/type/{strict → module}/index.js +1 -1
- package/build/cjs/type/module/infer.d.ts +43 -0
- package/build/cjs/type/module/infer.js +3 -0
- package/build/cjs/type/module/module.d.ts +27 -0
- package/build/cjs/type/module/module.js +37 -0
- package/build/cjs/type/not/not.d.ts +1 -1
- package/build/cjs/type/not/not.js +2 -2
- package/build/cjs/type/omit/omit-from-mapped-key.d.ts +6 -6
- package/build/cjs/type/omit/omit-from-mapped-key.js +10 -12
- package/build/cjs/type/omit/omit-from-mapped-result.d.ts +5 -5
- package/build/cjs/type/omit/omit-from-mapped-result.js +10 -10
- package/build/cjs/type/omit/omit.d.ts +26 -14
- package/build/cjs/type/omit/omit.js +46 -35
- package/build/cjs/type/partial/partial.d.ts +11 -7
- package/build/cjs/type/partial/partial.js +36 -24
- package/build/cjs/type/pick/pick-from-mapped-key.d.ts +6 -6
- package/build/cjs/type/pick/pick-from-mapped-key.js +10 -10
- package/build/cjs/type/pick/pick-from-mapped-result.d.ts +5 -5
- package/build/cjs/type/pick/pick-from-mapped-result.js +10 -10
- package/build/cjs/type/pick/pick.d.ts +25 -15
- package/build/cjs/type/pick/pick.js +47 -36
- package/build/cjs/type/record/record.d.ts +4 -2
- package/build/cjs/type/record/record.js +31 -28
- package/build/cjs/type/ref/ref.d.ts +4 -7
- package/build/cjs/type/ref/ref.js +3 -11
- package/build/cjs/type/required/required.d.ts +12 -8
- package/build/cjs/type/required/required.js +37 -25
- package/build/cjs/type/static/static.d.ts +1 -1
- package/build/cjs/type/tuple/tuple.d.ts +1 -1
- package/build/cjs/type/tuple/tuple.js +4 -4
- package/build/cjs/type/type/javascript.d.ts +10 -10
- package/build/cjs/type/type/javascript.js +6 -6
- package/build/cjs/type/type/json.d.ts +45 -68
- package/build/cjs/type/type/json.js +82 -98
- package/build/cjs/type/type/type.d.ts +1 -2
- package/build/cjs/type/type/type.js +55 -57
- package/build/cjs/type/union/union-evaluated.d.ts +6 -6
- package/build/cjs/type/union/union-evaluated.js +11 -10
- package/build/cjs/type/union/union.d.ts +1 -1
- package/build/cjs/type/union/union.js +4 -4
- package/build/cjs/value/cast/cast.js +8 -1
- package/build/cjs/value/check/check.js +11 -4
- package/build/cjs/value/clean/clean.js +8 -1
- package/build/cjs/value/convert/convert.js +7 -0
- package/build/cjs/value/create/create.js +7 -0
- package/build/cjs/value/default/default.js +7 -0
- package/build/cjs/value/transform/decode.js +18 -7
- package/build/cjs/value/transform/encode.js +18 -7
- package/build/cjs/value/transform/has.js +18 -18
- package/build/esm/compiler/compiler.d.mts +2 -2
- package/build/esm/compiler/compiler.mjs +13 -2
- package/build/esm/errors/errors.mjs +7 -0
- package/build/esm/index.d.mts +1 -2
- package/build/esm/index.mjs +1 -2
- package/build/esm/syntax/parse.d.mts +14 -15
- package/build/esm/syntax/parse.mjs +6 -5
- package/build/esm/syntax/runtime.d.mts +20 -4
- package/build/esm/syntax/runtime.mjs +183 -28
- package/build/esm/syntax/static.d.mts +107 -23
- package/build/esm/type/array/array.d.mts +1 -1
- package/build/esm/type/awaited/awaited.d.mts +8 -3
- package/build/esm/type/awaited/awaited.mjs +20 -20
- package/build/esm/type/computed/computed.d.mts +9 -0
- package/build/esm/type/computed/computed.mjs +6 -0
- package/build/esm/type/computed/index.d.mts +1 -0
- package/build/esm/type/computed/index.mjs +1 -0
- package/build/esm/type/guard/kind.d.mts +12 -4
- package/build/esm/type/guard/kind.mjs +12 -0
- package/build/esm/type/guard/type.d.mts +9 -3
- package/build/esm/type/guard/type.mjs +17 -0
- package/build/esm/type/index.d.mts +1 -2
- package/build/esm/type/index.mjs +1 -2
- package/build/esm/type/indexed/indexed-from-mapped-key.d.mts +6 -6
- package/build/esm/type/indexed/indexed-from-mapped-key.mjs +10 -10
- package/build/esm/type/indexed/indexed-from-mapped-result.d.mts +5 -5
- package/build/esm/type/indexed/indexed-from-mapped-result.mjs +11 -10
- package/build/esm/type/indexed/indexed-property-keys.d.mts +6 -6
- package/build/esm/type/indexed/indexed-property-keys.mjs +14 -14
- package/build/esm/type/indexed/indexed.d.mts +34 -20
- package/build/esm/type/indexed/indexed.mjs +55 -42
- package/build/esm/type/intersect/intersect-evaluated.d.mts +6 -6
- package/build/esm/type/intersect/intersect-evaluated.mjs +16 -16
- package/build/esm/type/intersect/intersect.d.mts +2 -2
- package/build/esm/type/intersect/intersect.mjs +6 -6
- package/build/esm/type/keyof/keyof-from-mapped-result.d.mts +6 -6
- package/build/esm/type/keyof/keyof-from-mapped-result.mjs +10 -10
- package/build/esm/type/keyof/keyof-property-keys.d.mts +7 -7
- package/build/esm/type/keyof/keyof-property-keys.mjs +22 -22
- package/build/esm/type/keyof/keyof.d.mts +11 -6
- package/build/esm/type/keyof/keyof.mjs +22 -13
- package/build/esm/type/module/compute.d.mts +54 -0
- package/build/esm/type/module/compute.mjs +148 -0
- package/build/esm/type/module/index.d.mts +1 -0
- package/build/esm/type/module/index.mjs +1 -0
- package/build/esm/type/module/infer.d.mts +43 -0
- package/build/esm/type/module/infer.mjs +1 -0
- package/build/esm/type/module/module.d.mts +27 -0
- package/build/esm/type/module/module.mjs +31 -0
- package/build/esm/type/not/not.d.mts +1 -1
- package/build/esm/type/not/not.mjs +2 -2
- package/build/esm/type/omit/omit-from-mapped-key.d.mts +6 -6
- package/build/esm/type/omit/omit-from-mapped-key.mjs +10 -12
- package/build/esm/type/omit/omit-from-mapped-result.d.mts +5 -5
- package/build/esm/type/omit/omit-from-mapped-result.mjs +10 -10
- package/build/esm/type/omit/omit.d.mts +26 -14
- package/build/esm/type/omit/omit.mjs +43 -32
- package/build/esm/type/partial/partial.d.mts +11 -7
- package/build/esm/type/partial/partial.mjs +29 -17
- package/build/esm/type/pick/pick-from-mapped-key.d.mts +6 -6
- package/build/esm/type/pick/pick-from-mapped-key.mjs +10 -10
- package/build/esm/type/pick/pick-from-mapped-result.d.mts +5 -5
- package/build/esm/type/pick/pick-from-mapped-result.mjs +10 -10
- package/build/esm/type/pick/pick.d.mts +25 -15
- package/build/esm/type/pick/pick.mjs +43 -32
- package/build/esm/type/record/record.d.mts +4 -2
- package/build/esm/type/record/record.mjs +15 -12
- package/build/esm/type/ref/ref.d.mts +4 -7
- package/build/esm/type/ref/ref.mjs +3 -11
- package/build/esm/type/required/required.d.mts +12 -8
- package/build/esm/type/required/required.mjs +33 -21
- package/build/esm/type/static/static.d.mts +1 -1
- package/build/esm/type/tuple/tuple.d.mts +1 -1
- package/build/esm/type/tuple/tuple.mjs +4 -4
- package/build/esm/type/type/javascript.d.mts +10 -10
- package/build/esm/type/type/javascript.mjs +6 -6
- package/build/esm/type/type/json.d.mts +45 -68
- package/build/esm/type/type/json.mjs +47 -63
- package/build/esm/type/type/type.d.mts +1 -2
- package/build/esm/type/type/type.mjs +1 -2
- package/build/esm/type/union/union-evaluated.d.mts +6 -6
- package/build/esm/type/union/union-evaluated.mjs +11 -10
- package/build/esm/type/union/union.d.mts +1 -1
- package/build/esm/type/union/union.mjs +4 -4
- package/build/esm/value/cast/cast.mjs +9 -2
- package/build/esm/value/check/check.mjs +11 -4
- package/build/esm/value/clean/clean.mjs +9 -2
- package/build/esm/value/convert/convert.mjs +7 -0
- package/build/esm/value/create/create.mjs +7 -0
- package/build/esm/value/default/default.mjs +7 -0
- package/build/esm/value/transform/decode.mjs +13 -2
- package/build/esm/value/transform/encode.mjs +13 -2
- package/build/esm/value/transform/has.mjs +2 -2
- package/package.json +1 -1
- package/readme.md +230 -97
- package/build/cjs/type/deref/deref.d.ts +0 -22
- package/build/cjs/type/deref/deref.js +0 -106
- package/build/cjs/type/deref/index.d.ts +0 -1
- package/build/cjs/type/strict/index.d.ts +0 -1
- package/build/cjs/type/strict/strict.d.ts +0 -12
- package/build/cjs/type/strict/strict.js +0 -16
- package/build/esm/type/deref/deref.d.mts +0 -22
- package/build/esm/type/deref/deref.mjs +0 -102
- package/build/esm/type/deref/index.d.mts +0 -1
- package/build/esm/type/deref/index.mjs +0 -1
- package/build/esm/type/strict/index.d.mts +0 -1
- package/build/esm/type/strict/index.mjs +0 -1
- package/build/esm/type/strict/strict.d.mts +0 -12
- package/build/esm/type/strict/strict.mjs +0 -12
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import { CloneType, CloneRest } from '../clone/type.mjs';
|
|
2
|
-
import { Discard } from '../discard/index.mjs';
|
|
3
|
-
import { IsUndefined } from '../guard/value.mjs';
|
|
4
|
-
// ------------------------------------------------------------------
|
|
5
|
-
// TypeGuard
|
|
6
|
-
// ------------------------------------------------------------------
|
|
7
|
-
import { IsConstructor, IsFunction, IsIntersect, IsUnion, IsTuple, IsArray, IsObject, IsPromise, IsAsyncIterator, IsIterator, IsRef } from '../guard/kind.mjs';
|
|
8
|
-
function FromRest(schema, references) {
|
|
9
|
-
return schema.map((schema) => Deref(schema, references));
|
|
10
|
-
}
|
|
11
|
-
// prettier-ignore
|
|
12
|
-
function FromProperties(properties, references) {
|
|
13
|
-
const Acc = {};
|
|
14
|
-
for (const K of globalThis.Object.getOwnPropertyNames(properties)) {
|
|
15
|
-
Acc[K] = Deref(properties[K], references);
|
|
16
|
-
}
|
|
17
|
-
return Acc;
|
|
18
|
-
}
|
|
19
|
-
// prettier-ignore
|
|
20
|
-
function FromConstructor(schema, references) {
|
|
21
|
-
schema.parameters = FromRest(schema.parameters, references);
|
|
22
|
-
schema.returns = Deref(schema.returns, references);
|
|
23
|
-
return schema;
|
|
24
|
-
}
|
|
25
|
-
// prettier-ignore
|
|
26
|
-
function FromFunction(schema, references) {
|
|
27
|
-
schema.parameters = FromRest(schema.parameters, references);
|
|
28
|
-
schema.returns = Deref(schema.returns, references);
|
|
29
|
-
return schema;
|
|
30
|
-
}
|
|
31
|
-
// prettier-ignore
|
|
32
|
-
function FromIntersect(schema, references) {
|
|
33
|
-
schema.allOf = FromRest(schema.allOf, references);
|
|
34
|
-
return schema;
|
|
35
|
-
}
|
|
36
|
-
// prettier-ignore
|
|
37
|
-
function FromUnion(schema, references) {
|
|
38
|
-
schema.anyOf = FromRest(schema.anyOf, references);
|
|
39
|
-
return schema;
|
|
40
|
-
}
|
|
41
|
-
// prettier-ignore
|
|
42
|
-
function FromTuple(schema, references) {
|
|
43
|
-
if (IsUndefined(schema.items))
|
|
44
|
-
return schema;
|
|
45
|
-
schema.items = FromRest(schema.items, references);
|
|
46
|
-
return schema;
|
|
47
|
-
}
|
|
48
|
-
// prettier-ignore
|
|
49
|
-
function FromArray(schema, references) {
|
|
50
|
-
schema.items = Deref(schema.items, references);
|
|
51
|
-
return schema;
|
|
52
|
-
}
|
|
53
|
-
// prettier-ignore
|
|
54
|
-
function FromObject(schema, references) {
|
|
55
|
-
schema.properties = FromProperties(schema.properties, references);
|
|
56
|
-
return schema;
|
|
57
|
-
}
|
|
58
|
-
// prettier-ignore
|
|
59
|
-
function FromPromise(schema, references) {
|
|
60
|
-
schema.item = Deref(schema.item, references);
|
|
61
|
-
return schema;
|
|
62
|
-
}
|
|
63
|
-
// prettier-ignore
|
|
64
|
-
function FromAsyncIterator(schema, references) {
|
|
65
|
-
schema.items = Deref(schema.items, references);
|
|
66
|
-
return schema;
|
|
67
|
-
}
|
|
68
|
-
// prettier-ignore
|
|
69
|
-
function FromIterator(schema, references) {
|
|
70
|
-
schema.items = Deref(schema.items, references);
|
|
71
|
-
return schema;
|
|
72
|
-
}
|
|
73
|
-
// prettier-ignore
|
|
74
|
-
function FromRef(schema, references) {
|
|
75
|
-
const target = references.find(remote => remote.$id === schema.$ref);
|
|
76
|
-
if (target === undefined)
|
|
77
|
-
throw Error(`Unable to dereference schema with $id ${schema.$ref}`);
|
|
78
|
-
const discard = Discard(target, ['$id']);
|
|
79
|
-
return Deref(discard, references);
|
|
80
|
-
}
|
|
81
|
-
// prettier-ignore
|
|
82
|
-
function DerefResolve(schema, references) {
|
|
83
|
-
return (IsConstructor(schema) ? FromConstructor(schema, references) :
|
|
84
|
-
IsFunction(schema) ? FromFunction(schema, references) :
|
|
85
|
-
IsIntersect(schema) ? FromIntersect(schema, references) :
|
|
86
|
-
IsUnion(schema) ? FromUnion(schema, references) :
|
|
87
|
-
IsTuple(schema) ? FromTuple(schema, references) :
|
|
88
|
-
IsArray(schema) ? FromArray(schema, references) :
|
|
89
|
-
IsObject(schema) ? FromObject(schema, references) :
|
|
90
|
-
IsPromise(schema) ? FromPromise(schema, references) :
|
|
91
|
-
IsAsyncIterator(schema) ? FromAsyncIterator(schema, references) :
|
|
92
|
-
IsIterator(schema) ? FromIterator(schema, references) :
|
|
93
|
-
IsRef(schema) ? FromRef(schema, references) :
|
|
94
|
-
schema);
|
|
95
|
-
}
|
|
96
|
-
// ------------------------------------------------------------------
|
|
97
|
-
// TDeref
|
|
98
|
-
// ------------------------------------------------------------------
|
|
99
|
-
/** `[Json]` Creates a dereferenced type */
|
|
100
|
-
export function Deref(schema, references) {
|
|
101
|
-
return DerefResolve(CloneType(schema), CloneRest(references));
|
|
102
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './deref.mjs';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './deref.mjs';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './strict.mjs';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './strict.mjs';
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { TSchema } from '../schema/index.mjs';
|
|
2
|
-
export type TStrict<T extends TSchema> = T;
|
|
3
|
-
/**
|
|
4
|
-
* @deprecated `[Json]` Omits compositing symbols from this schema. It is recommended
|
|
5
|
-
* to use the JSON parse/stringify to remove compositing symbols if needed. This
|
|
6
|
-
* is how Strict works internally.
|
|
7
|
-
*
|
|
8
|
-
* ```typescript
|
|
9
|
-
* JSON.parse(JSON.stringify(Type.String()))
|
|
10
|
-
* ```
|
|
11
|
-
*/
|
|
12
|
-
export declare function Strict<T extends TSchema>(schema: T): TStrict<T>;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @deprecated `[Json]` Omits compositing symbols from this schema. It is recommended
|
|
3
|
-
* to use the JSON parse/stringify to remove compositing symbols if needed. This
|
|
4
|
-
* is how Strict works internally.
|
|
5
|
-
*
|
|
6
|
-
* ```typescript
|
|
7
|
-
* JSON.parse(JSON.stringify(Type.String()))
|
|
8
|
-
* ```
|
|
9
|
-
*/
|
|
10
|
-
export function Strict(schema) {
|
|
11
|
-
return JSON.parse(JSON.stringify(schema));
|
|
12
|
-
}
|