@sinclair/typebox 0.32.0-dev-23 → 0.32.0-dev-25
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.d.mts +3 -2
- package/build/import/compiler/compiler.mjs +3 -2
- package/build/import/errors/errors.d.mts +2 -1
- package/build/import/errors/errors.mjs +2 -1
- package/build/import/index.d.mts +2 -1
- package/build/import/index.mjs +2 -1
- package/build/import/system/system.d.mts +3 -2
- package/build/import/system/system.mjs +3 -2
- package/build/import/type/error/error.d.mts +4 -0
- package/build/import/type/error/error.mjs +6 -0
- package/build/import/type/error/index.d.mts +1 -0
- package/build/import/type/error/index.mjs +1 -0
- package/build/import/type/extends/extends-check.d.mts +2 -1
- package/build/import/type/extends/extends-check.mjs +2 -1
- package/build/import/type/guard/type.d.mts +2 -1
- package/build/import/type/guard/type.mjs +2 -1
- package/build/import/type/index.d.mts +1 -0
- package/build/import/type/index.mjs +1 -0
- package/build/import/type/indexed/index.d.mts +1 -0
- package/build/import/type/indexed/index.mjs +1 -0
- package/build/import/type/indexed/indexed-from-mapped-result.d.mts +12 -0
- package/build/import/type/indexed/indexed-from-mapped-result.mjs +18 -0
- package/build/import/type/indexed/indexed.d.mts +4 -1
- package/build/import/type/indexed/indexed.mjs +6 -5
- package/build/import/type/record/record.d.mts +1 -1
- package/build/import/type/template-literal/finite.d.mts +2 -1
- package/build/import/type/template-literal/finite.mjs +2 -1
- package/build/import/type/template-literal/generate.d.mts +2 -1
- package/build/import/type/template-literal/generate.mjs +2 -1
- package/build/import/type/template-literal/parse.d.mts +2 -1
- package/build/import/type/template-literal/parse.mjs +2 -1
- package/build/import/type/template-literal/pattern.d.mts +2 -1
- package/build/import/type/template-literal/pattern.mjs +2 -1
- package/build/import/type/type/json.d.mts +3 -1
- package/build/import/value/cast/cast.d.mts +5 -4
- package/build/import/value/cast/cast.mjs +5 -4
- package/build/import/value/check/check.d.mts +2 -1
- package/build/import/value/check/check.mjs +2 -1
- package/build/import/value/convert/convert.d.mts +2 -1
- package/build/import/value/convert/convert.mjs +2 -1
- package/build/import/value/create/create.d.mts +7 -6
- package/build/import/value/create/create.mjs +7 -6
- package/build/import/value/delta/delta.d.mts +3 -2
- package/build/import/value/delta/delta.mjs +3 -2
- package/build/import/value/deref/deref.d.mts +2 -1
- package/build/import/value/deref/deref.mjs +2 -1
- package/build/import/value/hash/hash.d.mts +2 -1
- package/build/import/value/hash/hash.mjs +2 -1
- package/build/import/value/mutate/mutate.d.mts +3 -2
- package/build/import/value/mutate/mutate.mjs +3 -2
- package/build/import/value/pointer/pointer.d.mts +3 -2
- package/build/import/value/pointer/pointer.mjs +3 -2
- package/build/import/value/transform/decode.d.mts +3 -2
- package/build/import/value/transform/decode.mjs +3 -2
- package/build/import/value/transform/encode.d.mts +3 -2
- package/build/import/value/transform/encode.mjs +3 -2
- package/build/require/compiler/compiler.d.ts +3 -2
- package/build/require/compiler/compiler.js +61 -60
- package/build/require/errors/errors.d.ts +2 -1
- package/build/require/errors/errors.js +34 -33
- package/build/require/index.d.ts +2 -1
- package/build/require/index.js +155 -152
- package/build/require/system/system.d.ts +3 -2
- package/build/require/system/system.js +3 -2
- package/build/require/type/error/error.d.ts +4 -0
- package/build/require/type/error/error.js +11 -0
- package/build/require/type/error/index.d.ts +1 -0
- package/build/require/type/error/index.js +18 -0
- package/build/require/type/extends/extends-check.d.ts +2 -1
- package/build/require/type/extends/extends-check.js +172 -171
- package/build/require/type/guard/type.d.ts +2 -1
- package/build/require/type/guard/type.js +2 -1
- package/build/require/type/index.d.ts +1 -0
- package/build/require/type/index.js +1 -0
- package/build/require/type/indexed/index.d.ts +1 -0
- package/build/require/type/indexed/index.js +1 -0
- package/build/require/type/indexed/indexed-from-mapped-result.d.ts +12 -0
- package/build/require/type/indexed/indexed-from-mapped-result.js +23 -0
- package/build/require/type/indexed/indexed.d.ts +4 -1
- package/build/require/type/indexed/indexed.js +5 -4
- package/build/require/type/record/record.d.ts +1 -1
- package/build/require/type/template-literal/finite.d.ts +2 -1
- package/build/require/type/template-literal/finite.js +2 -1
- package/build/require/type/template-literal/generate.d.ts +2 -1
- package/build/require/type/template-literal/generate.js +2 -1
- package/build/require/type/template-literal/parse.d.ts +2 -1
- package/build/require/type/template-literal/parse.js +3 -2
- package/build/require/type/template-literal/pattern.d.ts +2 -1
- package/build/require/type/template-literal/pattern.js +2 -1
- package/build/require/type/type/json.d.ts +3 -1
- package/build/require/value/cast/cast.d.ts +5 -4
- package/build/require/value/cast/cast.js +36 -35
- package/build/require/value/check/check.d.ts +2 -1
- package/build/require/value/check/check.js +24 -23
- package/build/require/value/convert/convert.d.ts +2 -1
- package/build/require/value/convert/convert.js +32 -31
- package/build/require/value/create/create.d.ts +7 -6
- package/build/require/value/create/create.js +7 -6
- package/build/require/value/delta/delta.d.ts +3 -2
- package/build/require/value/delta/delta.js +20 -19
- package/build/require/value/deref/deref.d.ts +2 -1
- package/build/require/value/deref/deref.js +2 -1
- package/build/require/value/hash/hash.d.ts +2 -1
- package/build/require/value/hash/hash.js +2 -1
- package/build/require/value/mutate/mutate.d.ts +3 -2
- package/build/require/value/mutate/mutate.js +3 -2
- package/build/require/value/pointer/pointer.d.ts +3 -2
- package/build/require/value/pointer/pointer.js +3 -2
- package/build/require/value/transform/decode.d.ts +3 -2
- package/build/require/value/transform/decode.js +19 -18
- package/build/require/value/transform/encode.d.ts +3 -2
- package/build/require/value/transform/encode.js +20 -19
- package/package.json +1 -1
- package/readme.md +117 -137
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
import { TypeBoxError } from '../../type/error/index';
|
|
1
2
|
import { ValueError } from '../../errors/index';
|
|
2
3
|
import type { TSchema } from '../../type/schema/index';
|
|
3
|
-
export declare class TransformDecodeCheckError extends
|
|
4
|
+
export declare class TransformDecodeCheckError extends TypeBoxError {
|
|
4
5
|
readonly schema: TSchema;
|
|
5
6
|
readonly value: unknown;
|
|
6
7
|
readonly error: ValueError;
|
|
7
8
|
constructor(schema: TSchema, value: unknown, error: ValueError);
|
|
8
9
|
}
|
|
9
|
-
export declare class TransformDecodeError extends
|
|
10
|
+
export declare class TransformDecodeError extends TypeBoxError {
|
|
10
11
|
readonly schema: TSchema;
|
|
11
12
|
readonly value: unknown;
|
|
12
13
|
constructor(schema: TSchema, value: unknown, error: any);
|
|
@@ -3,14 +3,15 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.TransformDecode = exports.TransformDecodeError = exports.TransformDecodeCheckError = void 0;
|
|
5
5
|
const index_1 = require("../../type/symbols/index");
|
|
6
|
-
const index_2 = require("../../type/
|
|
7
|
-
const index_3 = require("../../type/
|
|
8
|
-
const index_4 = require("
|
|
9
|
-
const index_5 = require("../
|
|
6
|
+
const index_2 = require("../../type/error/index");
|
|
7
|
+
const index_3 = require("../../type/keyof/index");
|
|
8
|
+
const index_4 = require("../../type/indexed/index");
|
|
9
|
+
const index_5 = require("../deref/index");
|
|
10
|
+
const index_6 = require("../check/index");
|
|
10
11
|
// ------------------------------------------------------------------
|
|
11
12
|
// ValueGuard
|
|
12
13
|
// ------------------------------------------------------------------
|
|
13
|
-
const
|
|
14
|
+
const index_7 = require("../guard/index");
|
|
14
15
|
// ------------------------------------------------------------------
|
|
15
16
|
// TypeGuard
|
|
16
17
|
// ------------------------------------------------------------------
|
|
@@ -19,7 +20,7 @@ const type_1 = require("../../type/guard/type");
|
|
|
19
20
|
// Errors
|
|
20
21
|
// ------------------------------------------------------------------
|
|
21
22
|
// thrown externally
|
|
22
|
-
class TransformDecodeCheckError extends
|
|
23
|
+
class TransformDecodeCheckError extends index_2.TypeBoxError {
|
|
23
24
|
constructor(schema, value, error) {
|
|
24
25
|
super(`Unable to decode due to invalid value`);
|
|
25
26
|
this.schema = schema;
|
|
@@ -28,7 +29,7 @@ class TransformDecodeCheckError extends Error {
|
|
|
28
29
|
}
|
|
29
30
|
}
|
|
30
31
|
exports.TransformDecodeCheckError = TransformDecodeCheckError;
|
|
31
|
-
class TransformDecodeError extends
|
|
32
|
+
class TransformDecodeError extends index_2.TypeBoxError {
|
|
32
33
|
constructor(schema, value, error) {
|
|
33
34
|
super(`${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
34
35
|
this.schema = schema;
|
|
@@ -50,18 +51,18 @@ function Default(schema, value) {
|
|
|
50
51
|
}
|
|
51
52
|
// prettier-ignore
|
|
52
53
|
function FromArray(schema, references, value) {
|
|
53
|
-
return ((0,
|
|
54
|
+
return ((0, index_7.IsArray)(value))
|
|
54
55
|
? Default(schema, value.map((value) => Visit(schema.items, references, value)))
|
|
55
56
|
: Default(schema, value);
|
|
56
57
|
}
|
|
57
58
|
// prettier-ignore
|
|
58
59
|
function FromIntersect(schema, references, value) {
|
|
59
|
-
if (!(0,
|
|
60
|
+
if (!(0, index_7.IsPlainObject)(value) || (0, index_7.IsValueType)(value))
|
|
60
61
|
return Default(schema, value);
|
|
61
|
-
const knownKeys = (0,
|
|
62
|
+
const knownKeys = (0, index_3.KeyOfPropertyKeys)(schema);
|
|
62
63
|
const knownProperties = knownKeys.reduce((value, key) => {
|
|
63
64
|
return (key in value)
|
|
64
|
-
? { ...value, [key]: Visit((0,
|
|
65
|
+
? { ...value, [key]: Visit((0, index_4.Index)(schema, [key]), references, value[key]) }
|
|
65
66
|
: value;
|
|
66
67
|
}, value);
|
|
67
68
|
if (!(0, type_1.IsTransform)(schema.unevaluatedProperties)) {
|
|
@@ -81,9 +82,9 @@ function FromNot(schema, references, value) {
|
|
|
81
82
|
}
|
|
82
83
|
// prettier-ignore
|
|
83
84
|
function FromObject(schema, references, value) {
|
|
84
|
-
if (!(0,
|
|
85
|
+
if (!(0, index_7.IsPlainObject)(value))
|
|
85
86
|
return Default(schema, value);
|
|
86
|
-
const knownKeys = (0,
|
|
87
|
+
const knownKeys = (0, index_3.KeyOfPropertyKeys)(schema);
|
|
87
88
|
const knownProperties = knownKeys.reduce((value, key) => {
|
|
88
89
|
return (key in value)
|
|
89
90
|
? { ...value, [key]: Visit(schema.properties[key], references, value[key]) }
|
|
@@ -103,7 +104,7 @@ function FromObject(schema, references, value) {
|
|
|
103
104
|
}
|
|
104
105
|
// prettier-ignore
|
|
105
106
|
function FromRecord(schema, references, value) {
|
|
106
|
-
if (!(0,
|
|
107
|
+
if (!(0, index_7.IsPlainObject)(value))
|
|
107
108
|
return Default(schema, value);
|
|
108
109
|
const pattern = Object.getOwnPropertyNames(schema.patternProperties)[0];
|
|
109
110
|
const knownKeys = new RegExp(pattern);
|
|
@@ -126,24 +127,24 @@ function FromRecord(schema, references, value) {
|
|
|
126
127
|
}
|
|
127
128
|
// prettier-ignore
|
|
128
129
|
function FromRef(schema, references, value) {
|
|
129
|
-
const target = (0,
|
|
130
|
+
const target = (0, index_5.Deref)(schema, references);
|
|
130
131
|
return Default(schema, Visit(target, references, value));
|
|
131
132
|
}
|
|
132
133
|
// prettier-ignore
|
|
133
134
|
function FromThis(schema, references, value) {
|
|
134
|
-
const target = (0,
|
|
135
|
+
const target = (0, index_5.Deref)(schema, references);
|
|
135
136
|
return Default(schema, Visit(target, references, value));
|
|
136
137
|
}
|
|
137
138
|
// prettier-ignore
|
|
138
139
|
function FromTuple(schema, references, value) {
|
|
139
|
-
return ((0,
|
|
140
|
+
return ((0, index_7.IsArray)(value) && (0, index_7.IsArray)(schema.items))
|
|
140
141
|
? Default(schema, schema.items.map((schema, index) => Visit(schema, references, value[index])))
|
|
141
142
|
: Default(schema, value);
|
|
142
143
|
}
|
|
143
144
|
// prettier-ignore
|
|
144
145
|
function FromUnion(schema, references, value) {
|
|
145
146
|
for (const subschema of schema.anyOf) {
|
|
146
|
-
if (!(0,
|
|
147
|
+
if (!(0, index_6.Check)(subschema, references, value))
|
|
147
148
|
continue;
|
|
148
149
|
// note: ensure interior is decoded first
|
|
149
150
|
const decoded = Visit(subschema, references, value);
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
import { TypeBoxError } from '../../type/error/index';
|
|
1
2
|
import { ValueError } from '../../errors/index';
|
|
2
3
|
import type { TSchema } from '../../type/schema/index';
|
|
3
|
-
export declare class TransformEncodeCheckError extends
|
|
4
|
+
export declare class TransformEncodeCheckError extends TypeBoxError {
|
|
4
5
|
readonly schema: TSchema;
|
|
5
6
|
readonly value: unknown;
|
|
6
7
|
readonly error: ValueError;
|
|
7
8
|
constructor(schema: TSchema, value: unknown, error: ValueError);
|
|
8
9
|
}
|
|
9
|
-
export declare class TransformEncodeError extends
|
|
10
|
+
export declare class TransformEncodeError extends TypeBoxError {
|
|
10
11
|
readonly schema: TSchema;
|
|
11
12
|
readonly value: unknown;
|
|
12
13
|
constructor(schema: TSchema, value: unknown, error: any);
|
|
@@ -3,14 +3,15 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.TransformEncode = exports.TransformEncodeError = exports.TransformEncodeCheckError = void 0;
|
|
5
5
|
const index_1 = require("../../type/symbols/index");
|
|
6
|
-
const index_2 = require("../../type/
|
|
7
|
-
const index_3 = require("../../type/
|
|
8
|
-
const index_4 = require("
|
|
9
|
-
const index_5 = require("../
|
|
6
|
+
const index_2 = require("../../type/error/index");
|
|
7
|
+
const index_3 = require("../../type/keyof/index");
|
|
8
|
+
const index_4 = require("../../type/indexed/index");
|
|
9
|
+
const index_5 = require("../deref/index");
|
|
10
|
+
const index_6 = require("../check/index");
|
|
10
11
|
// ------------------------------------------------------------------
|
|
11
12
|
// ValueGuard
|
|
12
13
|
// ------------------------------------------------------------------
|
|
13
|
-
const
|
|
14
|
+
const index_7 = require("../guard/index");
|
|
14
15
|
// ------------------------------------------------------------------
|
|
15
16
|
// TypeGuard
|
|
16
17
|
// ------------------------------------------------------------------
|
|
@@ -18,7 +19,7 @@ const type_1 = require("../../type/guard/type");
|
|
|
18
19
|
// ------------------------------------------------------------------
|
|
19
20
|
// Errors
|
|
20
21
|
// ------------------------------------------------------------------
|
|
21
|
-
class TransformEncodeCheckError extends
|
|
22
|
+
class TransformEncodeCheckError extends index_2.TypeBoxError {
|
|
22
23
|
constructor(schema, value, error) {
|
|
23
24
|
super(`Unable to encode due to invalid value`);
|
|
24
25
|
this.schema = schema;
|
|
@@ -27,7 +28,7 @@ class TransformEncodeCheckError extends Error {
|
|
|
27
28
|
}
|
|
28
29
|
}
|
|
29
30
|
exports.TransformEncodeCheckError = TransformEncodeCheckError;
|
|
30
|
-
class TransformEncodeError extends
|
|
31
|
+
class TransformEncodeError extends index_2.TypeBoxError {
|
|
31
32
|
constructor(schema, value, error) {
|
|
32
33
|
super(`${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
33
34
|
this.schema = schema;
|
|
@@ -50,19 +51,19 @@ function Default(schema, value) {
|
|
|
50
51
|
// prettier-ignore
|
|
51
52
|
function FromArray(schema, references, value) {
|
|
52
53
|
const defaulted = Default(schema, value);
|
|
53
|
-
return (0,
|
|
54
|
+
return (0, index_7.IsArray)(defaulted)
|
|
54
55
|
? defaulted.map((value) => Visit(schema.items, references, value))
|
|
55
56
|
: defaulted;
|
|
56
57
|
}
|
|
57
58
|
// prettier-ignore
|
|
58
59
|
function FromIntersect(schema, references, value) {
|
|
59
60
|
const defaulted = Default(schema, value);
|
|
60
|
-
if (!(0,
|
|
61
|
+
if (!(0, index_7.IsPlainObject)(value) || (0, index_7.IsValueType)(value))
|
|
61
62
|
return defaulted;
|
|
62
|
-
const knownKeys = (0,
|
|
63
|
+
const knownKeys = (0, index_3.KeyOfPropertyKeys)(schema);
|
|
63
64
|
const knownProperties = knownKeys.reduce((value, key) => {
|
|
64
65
|
return key in defaulted
|
|
65
|
-
? { ...value, [key]: Visit((0,
|
|
66
|
+
? { ...value, [key]: Visit((0, index_4.Index)(schema, [key]), references, value[key]) }
|
|
66
67
|
: value;
|
|
67
68
|
}, defaulted);
|
|
68
69
|
if (!(0, type_1.IsTransform)(schema.unevaluatedProperties)) {
|
|
@@ -83,9 +84,9 @@ function FromNot(schema, references, value) {
|
|
|
83
84
|
// prettier-ignore
|
|
84
85
|
function FromObject(schema, references, value) {
|
|
85
86
|
const defaulted = Default(schema, value);
|
|
86
|
-
if (!(0,
|
|
87
|
+
if (!(0, index_7.IsPlainObject)(value))
|
|
87
88
|
return defaulted;
|
|
88
|
-
const knownKeys = (0,
|
|
89
|
+
const knownKeys = (0, index_3.KeyOfPropertyKeys)(schema);
|
|
89
90
|
const knownProperties = knownKeys.reduce((value, key) => {
|
|
90
91
|
return key in value
|
|
91
92
|
? { ...value, [key]: Visit(schema.properties[key], references, value[key]) }
|
|
@@ -105,7 +106,7 @@ function FromObject(schema, references, value) {
|
|
|
105
106
|
// prettier-ignore
|
|
106
107
|
function FromRecord(schema, references, value) {
|
|
107
108
|
const defaulted = Default(schema, value);
|
|
108
|
-
if (!(0,
|
|
109
|
+
if (!(0, index_7.IsPlainObject)(value))
|
|
109
110
|
return defaulted;
|
|
110
111
|
const pattern = Object.getOwnPropertyNames(schema.patternProperties)[0];
|
|
111
112
|
const knownKeys = new RegExp(pattern);
|
|
@@ -127,26 +128,26 @@ function FromRecord(schema, references, value) {
|
|
|
127
128
|
}
|
|
128
129
|
// prettier-ignore
|
|
129
130
|
function FromRef(schema, references, value) {
|
|
130
|
-
const target = (0,
|
|
131
|
+
const target = (0, index_5.Deref)(schema, references);
|
|
131
132
|
const resolved = Visit(target, references, value);
|
|
132
133
|
return Default(schema, resolved);
|
|
133
134
|
}
|
|
134
135
|
// prettier-ignore
|
|
135
136
|
function FromThis(schema, references, value) {
|
|
136
|
-
const target = (0,
|
|
137
|
+
const target = (0, index_5.Deref)(schema, references);
|
|
137
138
|
const resolved = Visit(target, references, value);
|
|
138
139
|
return Default(schema, resolved);
|
|
139
140
|
}
|
|
140
141
|
// prettier-ignore
|
|
141
142
|
function FromTuple(schema, references, value) {
|
|
142
143
|
const value1 = Default(schema, value);
|
|
143
|
-
return (0,
|
|
144
|
+
return (0, index_7.IsArray)(schema.items) ? schema.items.map((schema, index) => Visit(schema, references, value1[index])) : [];
|
|
144
145
|
}
|
|
145
146
|
// prettier-ignore
|
|
146
147
|
function FromUnion(schema, references, value) {
|
|
147
148
|
// test value against union variants
|
|
148
149
|
for (const subschema of schema.anyOf) {
|
|
149
|
-
if (!(0,
|
|
150
|
+
if (!(0, index_6.Check)(subschema, references, value))
|
|
150
151
|
continue;
|
|
151
152
|
const value1 = Visit(subschema, references, value);
|
|
152
153
|
return Default(schema, value1);
|
|
@@ -154,7 +155,7 @@ function FromUnion(schema, references, value) {
|
|
|
154
155
|
// test transformed value against union variants
|
|
155
156
|
for (const subschema of schema.anyOf) {
|
|
156
157
|
const value1 = Visit(subschema, references, value);
|
|
157
|
-
if (!(0,
|
|
158
|
+
if (!(0, index_6.Check)(schema, references, value1))
|
|
158
159
|
continue;
|
|
159
160
|
return Default(schema, value1);
|
|
160
161
|
}
|